PHPコーディング

SMTPソケットをオープンしてメール送信(PLAIN認証)

2010年01月21日
昨日の続きです。
昨日はソケットオープンまで成功しました。

今日はsmtp認証です。
smtp認証にも色々ありますが、まずは【PLAIN】方式についてです。

この方式は、【PLAIN】方式で認証を行うことをサーバーに通知する文字列に続いて、認証文字列をサーバーに送信します。

認証文字列に使うのは、サーバーによって
$id."\0".$id."\0".$pw

$id."\0".$pw
をbase64でエンコードした文字列です。

$ninsyo = base64_encode($id."\0".$id."\0".$pw);
@fputs($sock, "AUTH PLAIN ".$ninsyo."\r\n");
$result = @fgets($sock, 128);
成功してれば、【235 ・・・】と先頭が【235】の文字列がサーバーから返ってきます。

もしエラーなら、
$ninsyo = base64_encode($id."\0".$pw);
@fputs($sock, "AUTH PLAIN ".$ninsyo."\r\n");
を送ってみます。

この方式は、base64でエンコードしていますが、簡単にIDやパスワードをデコードできるので、セキュリティが高い方式ではありません。