【发布时间】:2012-05-14 03:51:01
【问题描述】:
这是失败的代码:
require_once "Mail.php";
$host = "mail.domain.com";
$username = "USER";
$password = "PASS";
$mailto = $name . ' <' . $email . '>';
$subject = 'My Subject';
$from = 'Client Name <info@clientdomain.com>';
$headers = array (
'From' => $from,
'To' => $mailto,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array (
'host' => $host,
'port' => '25',
'auth' => true,
'username' => $username,
'password' => $password
)
);
$mail = $smtp->send($mailto, $headers, $msg);
if (PEAR::isError($mail)) {
echo '<br /><br />' . $mail->getMessage();
} else {
echo '<br /><br />Worked';
}
我将 $email 值传递给脚本,如下所示:
$name = 'Joe Schmoe';
$email = 'webmaster@domain.com';
include ($_SERVER['DOCUMENT_ROOT'] . '/path/to/my/code/above.php');
当我运行脚本时,出现以下错误:
Failed to add recipient: webmaster@domain.com@localhost
[SMTP: Invalid response code received from server
(code: 504, response: 5.5.2 :
Recipient address rejected: need fully-qualified address)]
如果我将 $mailto 变量更改为:
$mailto = $name . ' <' . $email . '>';
...到以下内容:
$mailto = $name . ' <webmaster@domain.com>';
效果很好。
谁能告诉我我错过了什么?
【问题讨论】:
-
$email 变量的值是多少?
-
尝试打印出
$email的内容看起来好像@localhost以某种方式添加到您的webmaster@domain.com字符串中 -
ADRIEN:$email 在包含之前动态加载。具体到这个例子,'webmaster@domain.com' (sans-quotes)