web-dev-qa-db-ja.com

SMTPサーバーの応答:530 5.7.0最初にSTARTTLSコマンドを発行する必要があります

SMTPサーバーの応答:530 5.7.0最初にSTARTTLSコマンドを発行する必要があります

PHPスクリプトファイルでmail()関数を使用すると、このエラーメッセージが表示されます...

私はGmail SMTPサーバーを使用し、GmailはSTARTTLSを使用しています。STARTTLSはスパムを防止するためにセキュアなSSLであり、contact.phpファイルでこれらのコマンドを既に使用しています

ini_set("SMTP","smtp.gmail.com");
ini_set("sendmail_from","<email-address>@gmail.com>");

sTARTTLSを有効にする、またはphp、iniファイルで構成するために使用できるコマンドは何ですか?

18
Waqas Ahmed

まず、PHPインストールにSSLサポートがあることを確認してください(phpinfo()からの出力で "openssl"セクションを探してください)。

PHP.iniで次の設定を設定できます。

ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
15
chuckx

私は次のような誤った応答をしました:

fputs($connection, 'STARTTLS'.$newLine);

間違った接続変数を使用していることが判明したため、変更する必要がありました:

fputs($smtpConnect, 'STARTTLS'.$newLine);

TLSを使用する場合は、忘れずにHELOを前後に配置してください。

fputs($smtpConnect, 'HELO '.$localhost . $newLine);
$response = fgets($smtpConnect, 515);
if($secure == 'tls')
{
    fputs($smtpConnect, 'STARTTLS'.$newLine);
    $response = fgets($smtpConnect, 515);
stream_socket_enable_crypto($smtpConnect, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);

// Say hello again!
    fputs($smtpConnect, 'HELO '.$localhost . $newLine);
    $response = fgets($smtpConnect, 515);
}
0
Frank Forte

すぐに使用できるSwiftメーラーはSTARTTLSを実行できませんが、一部の そのためのパッチを作成している人がいます

パッチを当てるのは少し面倒であることがわかったので(おそらく間違った方法で行ったため)、ここでダウンロードできるように圧縮してあります: Swift Mailer with STARTTLS

0

私の場合、Swift Mailerも助けられませんでした。ここで解決策を見つけました: http://forum.powweb.com/showthread.php?t=73406 =-EHLOコマンドの後、STARTTLSコマンドを送信し、stream_socket_enable_crypto( $connection, true, STREAM_CRYPTO_METHOD_TLS_CLIENT );で暗号化を有効にし、EHLOコマンドを再度有効にする必要があります。これにより、「頑固な」SMTPサーバーでメールを送信できます。

0
boryn

PHPMailer ライブラリがその種のSMTPトランザクションを処理できることを知っています。

また、sendmail-SSLライブラリーを使用した偽のsendmailがその役割を果たします。

0
Alfabravo

私は自分のやり方を共有するつもりであり、以下を実装した後、それは私のために働いた:

Php.iniファイルを開き、 Gmail SMTP Settings からrefを取得して、それぞれのフィールドにすべての値を入力します

Smtpサーバーへの指示である[mail function]ステートメントからコメントを削除し、それらの値を一致させます。

また、sendmail SMTPサーバーは偽サーバーです。テキスト端末の横には何もありません(何か書いてみてください。:P)。 gmail s、tpを使用してメールを送信します。そのため、Gmail SMTP設定と一致するように正しく構成します。

smtp.gmail.com
Port: 587
0
Sudhir Singh