私はその日がうまくいくことを願っています。Office 365でPhpMailerを使用できない
私は、現在動作していないWebフォームを持っている既存のPHPサイト(私はPHP専門家とは遠く離れていることに注意してください)で少しの作業をしています。このフォームはユーザーの入力を受け取り、電子メールに変換してユーザーのオフィスアカウントに送信します。彼らは電子メールプロバイダとしてOffice 365に切り替えたときに機能しなくなりました。フォームはPhpMailerライブラリを使って送信を処理していますので、Office 365の設定を使用するように変更しましたhere。送信すると、次のエラーが表示されます。
2017-02-01 21:50:17 Connection: opening to smtp.office365.com:2525,
timeout=10, options=array () 2017-02-01 21:50:28 Connection: Failed to
connect to server. Error number 2. "Error notice: stream_socket_client()
[function.stream-socket-client]: unable to connect to smtp.office365.com:587
(Connection timed out) 2017-02-01 21:50:28 SMTP ERROR: Failed to connect to
server: Connection timed out (110)
Message delivery failed...RFI1
これはセットアップ方法のためにウェブページに直接出力されます。ここに私が入れているPhpMailer設定があります:
$mail = new PHPMailer(true);
$mail-> IsSMTP();
$mail->Host = "smtp.office365.com";
$mail->SMTPAuth = true;
$mail->Username = 'username';
$mail->Password = 'pass';
$mail->SMTPSecure = 'ssl';
$mail->Port = 587;
$mail->SMTPDebug = 2;
$mail->From = $from;
$mail->Mailer = "smtp";
$mail->FromName = 'Generic message';
私はここで間違っているかもしれない何かを見てきました。サイトをホストしているISPは何もブロックしていないと言い、MicrosoftはSSLを正しく設定していないと言います。私はこのシステムの専門家ではないので、私はサーバーに直接アクセスすることはできず、サイト自体が奇妙に構築されており、ローカルサーバーで適切に動作させることができません。それでも、SSLの問題によって接続タイムアウトが発生する可能性があると考えるのは苦労します。他に何がこの問題を引き起こす可能性があるのか誰にも分かりますか?
編集:エラーメッセージのポートがコード内のポートと一致しませんでした。私は何を読んだかに基づいていくつかのポートを試してみました。そして、それぞれ異なる時間にテキストをつかんでいます。
ポート2525奇数である、それはそれは私の悪かった、あなたはそう – nogad
に設定されたポートを使用していないようです。以前のコードを切り取って貼り付けた後、別のポート番号で試してみて、その実行からエラーを取得しました。サーバからの –
は 'telnet smtp.office365.com 587'を実行します。接続があるかどうかを確認してください。 – nogad