何をしようとしているか
PHPのバージョンを5.3.xから7.1.xまで上げたので、同時にPHPMailerのアップグレードをしたい
ちなみに、特にこれといって躓いたところはなかったけれど、作業記録として残しておく
コンテキストとゴール
PHPMailerからは基本的な機能しか使用していない
通常のテキストメールとファイルの添付くらい
アップグレード時に最適化などをするつもりもなく、これまでと同等の処理が行えればOKとした
どう解決したか
class.phpmailer.php
を読み込んでいたところを下記に置き換え
require_once('extensions/PHPMailer/PHPMailer.php');
new PHPMailer
でエラーがでるので、下記を追加
use PHPMailer\PHPMailer\PHPMailer;
public function getSMTPInstance()
でエラーが出るので、下記を追加
require_once('extensions/PHPMailer/SMTP.php');
とりあえず、ここまでで正常系テストでメール送信できたことを確認できた。
続いて、host指定時に空文字列の状態にしてテストすると、Exceptionをcatchできずに落ちたので、下記を追加
require_once('extensions/PHPMailer/Exception.php');
それからcacthの部分を、
try {
// なんらかの処理
} catch (phpmailerException $e) {
echo $e->errorMessage();
} catch (Exception $e) {
echo $e->getMessage();
}
から
try {
// なんらかの処理
} catch (Exception $e) {
echo $e->errorMessage();
} catch (\Exception $e) {
echo $e->getMessage();
}
という感じに変更
あと、use PHPMailer\PHPMailer\Exception;
は特に必要なかったはずだけど、念のため記述はしておいて完了とした
参考URLなど
ここに書いてあることをやっていれさえいれば、特に問題なかった
https://github.com/PHPMailer/PHPMailer/blob/master/UPGRADING.md