【问题标题】:PHP Sending Email ProblemsPHP 发送邮件问题
【发布时间】:2017-06-05 23:37:06
【问题描述】:

我有几个关于用 PHP 发送电子邮件的问题。过去几天我一直在 google 上,但我仍然无法让它充分发挥作用。

我的第一个问题是如何更改电子邮件的“发件人”部分?我的“发件人”部分中有“收件人:support@mydomain.com”:

我想要我的域名的正确名称(例如:“testingstuff.com” -> “Testing Stuff”)。我怎样才能做到这一点?

当我真正打开这封电子邮件后,里面的所有内容都正常且正确,包括发件人电子邮件地址为“support@mydomain.com”。

我的邮件也不会发送到 gmail 地址。它出现在我的邮件队列中,我的日志说它已发送,但我的 gmail 从未收到它。我是否需要采取额外的步骤才能让 Google 接受我的电子邮件?如果是这样,那是什么?其他主要的邮件服务是否需要相同的步骤,或者它们是不同的步骤?

这是我目前的代码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set("sendmail_from", "support@mydomain.com"); 
class email {
    public static function send($to, $subject, $message) {
        $headers = "From: Testing Stuff <support@mydomaincom>\r\n";
        $headers .= "Reply-To: support@mydomain.com\r\n";
        $headers .= "Content-type: text/html\r\n";
        mail($to, $subject, $message, $headers);
    }
}
?>

用法:

require_once("../mail.php");
email::send("support@mydomaincom", "testing email subject", "testing email body");

我的代码做错了吗?

【问题讨论】:

  • 您检查过 gmail 收件箱中的垃圾邮件文件夹吗? $headers .= 'From: My Domain &lt;donotreply@yourdomain.com&gt;' . "\r\n"; 也应该可以工作
  • 我建议使用现有的电子邮件库,如 PHPMailer、Swift Mailer 或类似的,并通过您的电子邮件提供商 SMTP 服务器发送电子邮件。这可能会立即解决这两个问题。

标签: php email


【解决方案1】:

您需要检查邮件是否正确发送,检查 mail() 结果,方式如下:

$result = mail($to, $subject, $message, $headers);
if(!$result) {   
    echo "Error";   
} else {
    echo "Success";
}

这是在你的静态函数中, 如果邮件功能返回“成功”,请检查您的垃圾邮件文件夹。

【讨论】:

  • 这不会说明电子邮件是否已发送,只要它已成功放入系统电子邮件队列。当系统实际尝试发送它时,它仍然可能失败。
猜你喜欢
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多