thinkphp 使用 phpmailer
要改成用php發送郵件, 首先要安裝 phpmailer, 執行
$ composer require phpmailer/phpmailer
出現錯誤如下
之前項目應該沒初始化過先跑初始化, 所以先執行composer初始化
$ composer install
出現不少錯誤, 後來發現安裝的 composer 版本太高, composer 2.7.9 已經不支持 php 7.4
改回去使用 composer 1 發現版本太低 repo 都不支持, 改用 composer 1.10.27
在這邊下載 composer.phar
下載後將 composer.phar 放在 composer1.0.27 目錄下, 並新增 composer.bat 在同目錄下, 編輯內容如下:
- @echo OFF
- : in case DelayedExpansion is on and a path contains !
setlocal DISABLEDELAYEDEXPANSION
php "%~dp0composer.phar" %*
設定 composer 到環境設定 path 下
C:\Users\joker\Downloads\composer1.0.27
在cmd查看版本
$ composer -V
Composer version 1.10.27 2023-09-29 10:50:23
安裝時遇到PHP版本太新的問題, 到 path 裡面修改成 php5.4 的版本, 確認版本調整到 5.4
安裝時遇到擴展問題
找到 php.ini 開啟 gd 擴展
最後安裝還是發現 repo 不支持 composer1 版本, 試了幾個都不行, 後來發現華為靜像支持
https://mirrors.huaweicloud.com/repository/php
$ composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php
再執行安裝, 通過了
$ composer require phpmailer/phpmailer:*
php發送代碼如下
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'jokerjkeeper@gmail.com';
$mail->Password = '**** '**** '**** '****';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;
$mail->Timeout = 5;
$mail->setFrom(''****@gmail.com', 'Mailer');
$mail->addAddress($email, 'Joe User');
//Content
$mail->isHTML(true);
$mail->CharSet = "utf-8";
$mail->Subject = '歡迎使用'****'; //'验证你的电子邮件';
$mail->Body = '歡迎使用'****';
$mail->send();