レンタルサーバーGoDaddyでPHPMailerを使うと限られたSTMP設定しか使えないのでわりとカオスな件【Composer無し】
どうもsgwです。最近GoDaddyでスクラッチで書いたPHPサイトでPHPMailer使ってコンタクトフォーム作って全く動かなかったのでメモ。PHPMailerをComposer使わないで使ったのでそれに関しては後日詳しく書いていきます。とりあえずメモ程度にGodaddyだとGodaddyで作成したメールでしか動かないということを伝えたいw
目次
やったこと
- PHPMailerをcomposer使わずにインストールしてスクラッチPHPでコンタクトフォーム作成
- 同ディレクトリで他のファイルからPHPMialerを読み込んでSendMailのSMTP使ったけどなぜか動かない
GoDaddyのサイト見てみた
やはりGoDaddyのSMTPサーバーしか使えないっぽい?
あとPHPMailerのGithubには名指しでGoDaddyはうーんみたいなこと書いてあります(笑)
ってことで上記ウェブサイトに沿ってconfigファイルを編集。まぁできる限りGodaddyはチョイスから外したほうがよさげ?(笑)でもワードプレスだと動くんですよね。多分authの方法が違うからだと思います。もしかしたらcomposer経由でやるといけるかもしれません。
PHPMailerダウンロード
PHPMailerはここからダウンロード。
こんな感じのファイル郡を使用するプロジェクトにぶち込みます。
今回はこのダウンロードした物のディレクトリ名をphpmailerに変更してます。
configを書きます
use PHPMailer\PHPMailer\PHPMailer;
require ('phpmailer/src/Exception.php');
require ('phpmailer/src/PHPMailer.php');
require ('phpmailer/src/SMTP.php');
3つのrequireでPHPMailer呼び出し。
$mail = new PHPMailer;
$mail->isSMTP();
$mail->CharSet = 'utf-8';
$mail->Host = "localhost";
$mail->SMTPAuth = false;
$mail->SMTPAutoTLS = false;
$mail->Port = 25;
んでnewしてauth無しのconfigにします。これじゃないと動かないです。
しかも基本的にはGodaddy上のcPanelを通して作成したメールアドレスにしか送れません。cPanelを通してforwardとかもできるみたいですがforward先にGmailを設定したらエラーが返ってきました。サーバーに問い合わせてもなんかよくわからない感じになって直りませんでした。
おまけ Hostpapaでは使えます
僕はHostpapaも使ってるんですが、レンタルサーバーのプランだと初期設定のままだと外部SMTPから送信することは制限されてるみたいです。その代わり、Hostpapaに直接チャットサポートを通して、連絡するとスペシャリストに投げられてメールでやり取りして許可してくれます。わりと海外サーバーだとレンタルではなく、VPSとかにしないとあまり自由に使えないのかもしれません。
そんなこんなで See Yaaaaa!!!!!!!!!