私はCodeigniter 3を使用しており、私のウェブサイトに簡単な連絡フォームを持っています。この連絡フォームは私のローカルホストXAMPP環境では完全に動作しますが、私の共有ウェブホスティング(BT)では動作しません。Codeigniter SMTP接続できません
私は彼らのサポートに連絡してきましたが、メールアカウントが提供できない電子メールクライアントを使って電子メールを送受信できるかどうかは明らかです追加のサポート:/
このアカウントを使用して電子メールを送受信するには、Office365にログインすることができます。 Office365のsmpt設定は次のとおりです。
Server name: smtp.office365.com
Port: 587
Encryption method: STARTTLS
私の現在のコードは以下の通りです。
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.office365.com'; // also tried tls://smtp.office365.com
$config['smtp_port'] = '587';
$config['smtp_user'] = '[email protected]';
$config['smtp_pass'] = 'MyPass';
$config['smtp_crypto'] = 'tls';
$config['mailtype'] = 'html';
$config['wordwrap'] = TRUE;
$config['charset'] = 'iso-8859-1';
$config['newline'] = "\r\n";
ローカルホストでは電子メールが送信され、問題はありません。ライブWebホストで、私は次のエラーを受け取ります。
メッセージ:fsockopenの(): をsmtp.office365.com:587に接続できません(接続がタイムアウト)
私は問題が有効にされていないのOpenSSLに関連している可能性があることを読みましたただし、Webホストが有効であることが確認されています。私はまた、次のコードを使用してロードされた拡張機能をチェックしました。
echo "<pre>";
print_r(get_loaded_extensions());
echo "</pre>";
Array
(
[0] => Core
[1] => date
[2] => ereg
[3] => libxml
[4] => openssl
[5] => pcre
etc
etc
)
次のコードを使用してsmtpサーバーに接続できることを確認しました。
$fp = fsockopen('tcp://smtp.office365.com', 587, $errno, $errstr, 10);
echo fgets($fp, 128);
var_dump($fp, $errno, $errstr);
fclose($fp);
私のローカルホストでは、次のメッセージが表示されます。
220 VI1PR0602CA0001.outlook.office365.comのMicrosoft ESMTP MAILサービス 月、19で準備ができて2017年6月10時19分10秒タイプの0000リソース(55)(ストリーム) INT(0)文字列(0 ) ""
ライブサーバーではこれを受け取ります。
メッセージ:fsockopenの()://smtp.office365.com: TCPに接続することができません587(接続がタイムアウト)
私はGmailのSMTPを試してみましたが、再びこれはローカルで動作しますが、リモートWebホストではありません。
他にも試してみるべきことはありますか、私のウェブホストに確認を依頼してください。現在私はアイデアがありません。
何か助けていただければ幸いです。
アメージング@winnieのdamayo:これに
:あなたのコードを変更するには
お試しください!どうもありがとうございました。なぜそれは機能し、私の元の方法はしませんでしたか? Codeigniterの文書によると、 '$ config ['protocol'] = 'smtp''を使用すると言います。私はこのことを数日間試してみました。もう一度感謝します。 –