0

メールに SMTP コマンドを使用する古い PHP システムを使用しています。Gmail に切り替えるので、認証が必要です。サーバーに接続できます。残念ながら、530-5.5.1 認証が必要です。PHP コードで MAIL FROM コマンドを送信すると、"メッセージで詳細を確認してください。

if (fputs($this->Socket,  "MAIL FROM: \"admin\" <admin@yourdomain.com>\r\n")<0){ 

認証を追加する明確な例が見つかりません。http://www.faqs.org/rfcs/rfc2554.htmlで、MAIL FROM コマンドに AUTH= を追加する必要があることを読みました。AUTH= に何を入れるかを解釈するのに問題があります

Examples:
   C: MAIL FROM:<e=mc2@example.com> AUTH=e+3Dmc2@example.com
   S: 250 OK

認証の形式を知っていますか?

4

1 に答える 1

1

SMTP 認証を行う方法はいくつかありますが、そのうちの 1 つは SMTPAUTH LOGINコマンドを使用することです。セッションのトランスクリプトは次のようになります。

host: 220 banner_here
client: EHLO StephaniePC
host: 250-name.of.host hello [clientip], pleased to meet you
host: 250-AUTH LOGIN PLAIN
host: 250 OK
client: AUTH LOGIN
host: 334 VXNlcm5hbWU6
client: am9lc21pdGg=
host: 334 UGFzc3dvcmQ6
client: bGV0bWVpbg0K
host: 235 2.7.0 Authentication successful
client: MAIL FROM: <sender@senderdomain.tld>
host: 250 2.1.0 Ok
client: RCPT TO: <recipient@recipientdomain.tld>
host: 250 2.1.0 Ok
client: DATA
host: 354 End data with <CR><LF>.<CR><LF>
....

上記のエンコードされた文字列は base64 でエンコードされています。ログに記録できるメール クライアントをお持ちの場合は、gmail を介してメッセージを送信してみてください。セッションのトランスクリプトは上記のトランスクリプトのようになります。

参考までに、SMTP 認証を行うコードを自分で書く代わりに、phpmailer. phpmailerは SMTP 認証を行うことができ、非常に軽量で使いやすいです。

于 2014-03-26T08:28:45.243 に答える