0

通过 mail() 函数发送电子邮件时遇到问题。

我有一个脚本,对于像 name@domain.com 这样的电子邮件地址非常有效,但是当电子邮件的第一部分带有像 name.surname@domain.com 这样的点时,它不起作用并返回此错误:

警告:mail() [function.mail]:SMTP 服务器响应:554:收件人地址被拒绝:在第 119 行的 confirm.php 中中继访问被拒绝

我使用的是真实的电子邮件地址,但在上面的示例中已经更改了它。

任何想法 - 我不是 php 大师,但肯定有一种简单的方法可以通过 2 部分的第一部分向地址发送电子邮件?

提前感谢阿里

4

2 回答 2

2

这不是 PHP 的错。它是您的 SMTP 服务器。检查邮件日志,即 /var/log/mail.log 并查看它是否输出任何内容。我最好的猜测是您的中继配置错误。

于 2010-05-28T10:31:25.060 回答
1

如果下面的代码因此错误而失败,那么 DeeD 是部分正确的 - 但它不是中继损坏的 - 地址重写规则完全是 ^&*(ed up.

<php 
 mail('name.surname@domain.com','hello','test');
?>

也试试:

然而,对于设置 MTA 的人来说,这将是一个非常愚蠢的错误。我怀疑其他地方的代码更有可能在调用 mail(...) 之前修改了地址,或者您的分析不完整。如果是这种情况,那么上面的测试都不会返回原始错误 - 检测您的代码以找出地址被更改的位置。

或者,如果 MTA 真的不喜欢 . 以名义 - 为配置它的人购买牛产品。

C。

于 2010-05-28T11:27:28.517 回答