[PHP-users 21448]Re: メール送信エラー
H.Oka @ netlab.club.ne.jp
H.Oka @ netlab.club.ne.jp
2004年 4月 21日 (水) 13:12:39 JST
こんにちわ。ありがとうございます。
岡でございます。
\n(LF)のみの改行は、メールが終了できなくなるため
822bis section 2.3で使用禁止ということで、
スクリプト中の\nを\r\nに変更するために、
$message = implode("\r\n", preg_split("/\r?\n/", $message));
を入れました。
$messageについては、これで改善できたのですが、
$subjectのほうは、
$subject = implode("\r\n", preg_split("/\r?\n/", $subject));
しても、エラーのまま改善されませんでした。
そもそも$subjectでは改行は入れていないです。
次のようにbase64でエンコードすると、期待通りにメール送信できました。
<?php
mb_language("japanese");
$subject = "1234567890";
$subject = mb_convert_encoding( $subject, "iso-2022-jp", "auto" );
$subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
$message = "メール送信テストの本文\n";
$message .= " mic @ kiis.ac.jp";
$message = implode("\r\n", preg_split("/\r?\n/", $message));
$message = mb_convert_encoding( $message, "iso-2022-jp", "auto" );
mail("testuser @ xxx.yy.zz", $subject, $message);
?>
subjectを送信するときに、15バイト目?ぐらいで、
自動的に改行コード(\n)が挿入されているということでしょうか・・・
"ICHIRO" <ichiro @ wvn.gr.jp>さんは書きました。
(Wed, 21 Apr 2004 12:01:57 +0900)
----------------------------------
> こんにちわ。
>
> 山崎です。
>
> > [エラー内容]
> > Warning: mb_send_mail(): SMTP server response: 451
> > See http://pobox.com/~djb/docs/smtplf.html
>
> にはなんと書いてありましたか?
--
Hisato OKA
H.Oka @ netlab.club.ne.jp
PHP-users メーリングリストの案内