SMTP サーバーに接続してメールを送信する小さな php スクリプトを作成しました。特に、googles smtp サーバーへの接続。以下に示す SMTPD セットから明らかなように、何かがおかしくなっています。
[data2] => 501 5.5.2 Cannot Decode response o47sm22737144eem.11
メールの本文を間違えましたか。間違ったフォーマット?phpスクリプトは次のとおりです。
// SMTP settings
define( 'SMTP_SERVER', "ssl://smtp.gmail.com" );
define( 'SMTP_PORT', '465' );
define( 'SMTP_USER', 'XXX@gmail.com' ); // my gmail account
define( 'SMTP_PWD', 'XXX' ); // my gmail password
class Mail
{
public static function send( $smtpServer, $smtpPort, $smtpUser, $smtpPwd,
$from, $to, $subject, $message )
{
// Establish connection to SMTP server
$smtpConn = fsockopen( $smtpServer, $smtpPort );
$smtpLog['connect'] = fgets( $smtpConn );
// In case of success start SMTP communication
if ( $smtpConn !== false )
{
// Say hello to SMTP
fputs( $smtpConn, 'EHLO ' . $_SERVER['SERVER_ADDR'] . NL );
$smtpLog['hello'] = fgets( $smtpConn );
// Require authentication
fputs( $smtpConn, 'AUTH LOGIN' . NL );
$smtpLog['auth'] = fgets( $smtpConn );
// Send username
fputs( $smtpConn, base64_encode( $smtpUser ) . NL );
$smtpLog['user'] = fgets( $smtpConn );
// Send password
fputs( $smtpConn, base64_encode( $smtpPwd ) . NL );
$smtpLog['pwd'] = fgets( $smtpConn );
// Send email from
fputs( $smtpConn, "MAIL FROM: <$from>" . NL );
$smtpLog['from'] = fgets( $smtpConn );
// Send email to
fputs( $smtpConn, "RCPT TO: <$to>". NL );
$smtpLog['to'] = fgets( $smtpConn );
// Send "the email"
fputs( $smtpConn, 'DATA' . NL );
$smtpLog['data1'] = fgets( $smtpConn );
fputs( $smtpConn,
"To: <$to>\r\nFrom: <$from>\r\nSubject: $subject\r\n$message\r\n.\r\n" );
$smtpLog['data2'] = fgets( $smtpConn );
fputs( $smtpConn, 'QUIT' . NL );
$smtpLog['quit'] = fgets( $smtpConn );
fclose( $smtpConn );
}
return $smtpLog;
}
}
$log = Mail::send( SMTP_SERVER, SMTP_PORT, SMTP_USER, SMTP_PWD,
'XXX@gmail.com', 'XXX@yahoo.com', 'Subject', 'Message' );
print_r( $log );
Google の SMTP サーバーからの完全な応答ログ:
[connect] => 220 mx.google.com ESMTP o47sm22737144eem.11
[hello] => 250-mx.google.com at your service, [XX.XX.XX.XX]
[auth] => 250-SIZE 35882577
[user] => 250-8BITMIME
[pwd] => 250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
[from] => 250 ENHANCEDSTATUSCODES
[to] => 334 XXX
[data1] => 334 XXX
[data2] => 501 5.5.2 Cannot Decode response o47sm22737144eem.11
[quit] => 530-5.5.1 Authentication Required. Learn more at