[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 メーリングリストの案内