PHP 来自电子邮件的 mail() 和 replyto 添加服务器地址

PHP mail() from email and replyto adds server address

我目前有一个 php 脚本可以使用 sendmail 从 Ubuntu 服务器发送电子邮件。

$to = $sendTo;
$subject = $subjectPrefix . $subject;
$txt = $message;
$headers = array(
  "From: ". $email,
  "Reply-To: ".$email,
  "Content-type:text/html;charset=UTF-8",
  "MIME-Version: 1.0",
  "X-Mailer: PHP/" . PHP_VERSION
);
$headers = implode("\r\n", $headers);

if(mail($to,$subject,$txt,$headers)){
  echo "sent";
}
else {
  echo "failed";
}

电子邮件发送正常,但总是进入垃圾邮件并在电子邮件中附加服务器地址,例如:"input@email.com"@ip-###-##-##-###.eu -西-2.compute.internal

我该如何将其设置为只显示输入的电子邮件而不进入垃圾邮件?

您可以使用电子邮件域的 SMTP 服务器。例如,如果您想使用来自 Google 的 Gmail 服务的电子邮件作为 From address ,您必须使用 Gmail SMTP 服务器。

因此,您可以为 SendMail 添加 SMTP 电子邮件依赖。如何去做你可以阅读 here

此外,您可以安装 SMTP 客户端 msmtp 并配置 PHP 以使用它。说明here

最后,如果你不想配置你的服务器,你可以使用 PHPMailer 库。

这是因为您用来发送电子邮件的邮件服务器不属于发件人的域,因此不是 'trusted' 来源。