- 締切済み
メールのFromに半角ピリオドが入るとエラーが・・・
PEARのメール送信について教えてください。 現在PEARのMailと、mime.phpを使用してメール送信をするプログラムを組んでいるのですが、エンコードの仕方が悪いのかメールのFromに半角ピリオド、半角カンマなどが入るとエラーが出てしまいます。 以下がそのコードの主要部分ですが、対応策がありましたらご教授ください。よろしくお願いいたします。 --------------------------------------------------------- //ヘッダーのFromエンコード(問題の部分?) $headers['From'] = mb_encode_mimeheader(mb_convert_encoding( $mail_from_name , "ISO-2022-JP", "EUC-JP"))."<".$mail_from.">"; $objMail =& Mail::factory('sendmail'); $original = mb_internal_encoding(); $headers['Subject'] = mb_convert_encoding( $sbj , "ISO-2022-JP" , "EUC-JP" ); mb_internal_encoding("ISO-2022-JP"); $headers['Subject'] = mb_encode_mimeheader($headers['Subject'],"ISO-2022-JP"); mb_internal_encoding($original); $crlf = "\n"; $mime =& new Mail_mime($crlf); $mime->setHTMLBody($body); $build_param = array( "html_charset" => "EUC-JP", "text_charset" => "ISO-2022-JP", "head_charset" => "ISO-2022-JP", ); $body = $mime->get( $build_param ); $headers = $mime->headers($headers); $objMail =& Mail::factory('sendmail'); $result = $objMail->send( $mail_to , $headers , $body );
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- t-okura
- ベストアンサー率75% (253/335)
> メールのFromに半角ピリオド、半角カンマなどが入るとエラーが出てしまいます。 php は、よく知らないのですが ... 半角ピリオドはどの位置にありますか、インターネットメールでは、 メールアドレスの先頭や @ の直前のピリオド、連続するピリオドは、 仕様外になっていますので、php の関数がチェックを行っているの かもしれません。 参考 http://neta.ywcafe.net/000799.html また、半角カンマは複数のメールアドレスを記述する際の分離符として 使用されます。メールヘッダの From: に複数のメールアドレスを 書くのは問題ないのですが、メールの送信者をあらわす envelope sender (通常エラーメールの戻り先となる)は、単一のメールアドレスでなければ なりません。 Pear の Mail 関数では、Return-Path ヘッダを設定すると、 envelope sender として設定されるようですので、from とは 別に単一のアドレスを Return-Path に設定すればよいのでは ないでしょうか。