ぺーぺーことSsmK
です。PHP error debugなぜこの様なエラーがおこるかまったくわかりません。ソースも見たのですが如何せんphpがまだわからなくて...
Error: mail() [function.mail]: SMTP server response: 451 MELON ssmtpd: Invalid mail address
Error type/ Nr.: Warning - 2
File: C:\Program Files\xampp\htdocs\modx\manager\includes\document.parser.class.inc.php(705) : eval()’d code
Line: 108
このメッセージは document.parser.class.inc.php の 705 行目にある
File: C:\Program Files\xampp\htdocs\modx\manager\includes\document.parser.class.inc.php(705) : eval()’d code
Line: 108
と言っているのですから、mail() に渡している引数でおかしなことになってい
Error: mail() [function.mail]: SMTP server response: 451 MELON ssmtpd: Invalid mail address
mb_language ("ja");
mb_internal_encoding ("UTF-8");
if (!mb_send_mail ($email, $emailsubject, $message, "From: ".$emailsender."\r\n"."X-Mailer.....
$to [email protected] $subject=[Web Inquiry] http://localhost/modx/ $body =Name: UserName Email: [email protected] Message: テスト $headers =From: UserName
$to = '[email protected]'; $subject = '[Web Inquiry] http://localhost/modx/'; $message = 'Name: UserName Email: [email protected] Message: テスト'; $headers = 'From: UserName'; mail($to, $subject, $message, $headers);
$headers = 'From: UserName';
if (mail($to, $subject, $body, $headers)) {
よかったらご教授お願いします。
:D
んん? mail() が From ヘッダーの内容を壊しているのではないですよね。
$headers は
$headers = "From: $from <$from_email>\r\n";
で生成されており、理想の出力としては下記のようになるハズですが
"From: UserName<[email protected]>\r\n"
実際は
"From: UserName"
のように < 以降ブチ切れているようです。エンコードの問題なのか、バグなのか良くわかりません。
の部分。何故だか忘れましたが、CRLF を分けて書かないときちんと動かなかっ
(前) $headers = "From: $from <$from_email>\r\n";
(後) $headers = "From: $from <$from_email>" . "\r\n";
...ということは、From はどうなのか?
注意: mail() の Windows 版実装は、Unix 版実装とは 多くの点で違います。第一に、メッセージの生成にローカルのバイナリは使用せず、 ソケットを通じて直接操作するだけです。 これは MTA がネットワークソケットをlisten している 必要があるということを意味します(ローカルホスト、リモートマシンどちらでもかまいません)。
第二に、 From: や Cc: Bcc: Date: のようなカスタムヘッダはMTA ではなく PHP によってパースされます。
そのため、to 引数には "Something <[email protected]>" 形式の メールアドレスを与えることはできません。 MTA と通信する際に mail コマンドはこれを適切にパースできません。
そうですね、apache/bin/php.ini と php/bin/php.ini の2つありますね。php
XAMPPのWindows版のphp.iniがapache/binにあるとは・・・ずっと PHP/binを修正してました :’(


[!ContactForm? &sendTo=`xxx@localhost.com`!]
mb_language("japanese");
mb_internal_encoding("UTF-8");
$subject = $the_subject;
$headers = mb_encode_mimeheader("From: $from <$from_email>\r\n","ISO-2022-JP", 'B', "\r\n");
// clean out potential tomfoolery...
$message = $modx->stripTags($message);
$body = "Name: $from\nEmail: $from_email\nMessage:\n\n" . $message;
if (mb_send_mail($to, $subject, $body, $headers)) {
mb_language("japanese"); mb_internal_encoding("UTF-8"); $subject = $the_subject; $headers = mb_encode_mimeheader("From: $from <$from_email>\r\n","ISO-2022-JP", 'B', "\r\n"); // clean out potential tomfoolery... $message = $modx->stripTags($message); $body = "Name: $from\nEmail: $from_email\nMessage:\n\n" . $message; if (mb_send_mail($to, $subject, $body, $headers)) {
該当部分を上記のように変更してOKでした。