wp_mail(Wordpress邮件功能)不发送到gmail或live.co.uk帐户

时间:2013-12-20 12:46:35

标签: php jquery ajax wordpress email

我有一个网站,允许访问者通过两种方式与我联系 - 通过自己页面上的联系表单和侧栏中的“ajax”小型联系表单。

这两种联系方式都会向我的Gmail帐户发送电子邮件。

它自己的页面上的联系表格工作正常,但ajax表单不会发送到Gmail(也不会发送到以.live.co.uk结尾的电子邮件地址)

如果我将ajax联系表单上的'to'地址更改为我的其他域名(即不同的电子邮件地址),那么它可以正常工作。

我已经检查了发送的电子邮件的标题,最后安装了一个“插件”,如果Google(和live.co.uk)在接受电子邮件之前检查了这一点,就会改变返回路径。这没有任何区别。

这些论坛上有很多关于wp_mail没有发送到gmail但没有实际解决方案的讨论。

我已经检查了垃圾邮件垃圾邮件文件夹等,以防电子邮件进入那里,但事实并非如此。

我也尝试过使用'mail()'功能,但无济于事。

我在ajax调用的页面上的代码如下所示:

$headers  = 'From: myWebsite <enquiries@mywebsite.co.uk>' . "\r\n";
$headers .= 'Reply-To: myWebsite <enquiries@mywebsite.co.uk>';
$email_to = "myemailaddy@gmail.com";
wp_mail( $email_to , sanitize_text_field( $subjectLine ), wp_strip_all_tags( $emailContent ), $headers );
$email_to = "myemailaddy@anotherdomain.com";
wp_mail( $email_to , sanitize_text_field( $subjectLine ), wp_strip_all_tags( $emailContent ), $headers );

每次提交表单时,我都会将电子邮件发送到我的“anotherdomain.com”地址,但不会收到我的gmail.com地址。

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

许多这类问题涉及电子邮件而不是“发送”到某些域。但是,更有可能没有收到电子邮件。 “未收到”并不等同于“未发送”,这是故障排除中的一个重要区别。

如果收到其他电子邮件地址,则可能是您在列出的接收主机上标记了您的消息。

您可以采取一些措施,让您的电子邮件更有可能在没有被丢弃的情况下通过:

  • 使用真实地址的“发件人”地址。 WP默认为wordpress@yourdomain.com。可以使用wp_mail_from
  • 过滤此内容
  • 将“发件人”设置为“发件人”地址。如果邮件标题的这两个元素不匹配,某些垃圾邮件过滤器会拒绝电子邮件为垃圾邮件。有a simple code snippet here that will do it
  • 通过SMTP发送是最佳选择。你可以通过一个插件(wordpress.org插件库中有几个)来做到这一点,或者你也可以set it up yourself using the phpmailer_init action

答案 1 :(得分:1)

希望这些会对你有所帮助,如果我的观点无效,请原谅我。

  1. 停用标题&amp;尝试一下,而不是从地址使用 类似wordpress@mywebsite.co.uk
  2. 联系托管服务提供商 &安培;确认您的服务器已被Gmail列入黑名单。 .live.co.uk
  3. 也试试这个插件 http://wordpress.org/extend/plugins/wp-mail-smtp/
  4. 也阅读这篇文章 http://www.butlerblog.com/2013/09/24/troubleshooting-the-wp_mail-function/

答案 2 :(得分:0)

如果在From:Reply-To:电子邮件地址相同的情况下,可能对我的Web主机有所帮助,则电子邮件将被拒绝。只需删除Reply-To:标头即可使其工作。