从phpmailer发送邮件时,为什么我的发件人被postfix拒绝?

问题描述

当我运行以下PHP代码时,出现错误

dummy

邮件似乎已发送。 PHPMailer不会生成任何错误,并且数据库代码正在运行。

这是mail.log中生成错误

l3

我尝试在PHP代码中将要验证的发送人地址更改为我的用户

我尝试将具有匹配哈希表的smtpd_sender_login_maps参数添加到我的postfix配置中,以将无回复地址映射到我进行身份验证的用户,但是它将其作为未使用的参数忽略。

后缀配置:

$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = SMTP::DEBUG_SERVER; // debug
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = $uname;
$mail->Password = $pw;
$mail->CharSet = PHPMailer::CHARSET_UTF8;
$mail->setFrom('[email protected]','website registration');
$mail->addAddress($cleaned_email);
$mail->Subject = 'Please verify your account';
$msg = '[registration text...]'
$msg = wordwrap($msg,70);
$mail->Body = $msg;
                        
if (!$mail->send()) {
  echo $mail->ErrorInfo;
  exit();
} else {
  [... add user to db,etc...]
}

解决方法

“发件人”地址的语法不正确:

$ mail-> setFrom(“在示例点com上不答复,'网站注册');

您需要使用有效的电子邮件地址,例如:

$mail->setFrom('[email protected]','website registration');
,

我的问题与PHP Mailer无关。我发布的php代码有效。我的问题是我的电子邮件服务器设置。我在“超级用户”上发布了一个与服务器相关的更多问题:https://superuser.com/questions/1580944/soho-postfix-dovecot-configuration-for-small-web-app-and-user-base

谢谢大家的答复。