【问题标题】:Mail go to spam using smtp mail method in php邮件使用 php 中的 smtp 邮件方法转到垃圾邮件
【发布时间】:2015-05-06 06:21:11
【问题描述】:

我想使用 PHP 使用 smtp 邮件方法将邮件发送到收件箱。现在邮件转到垃圾邮件而不是收件箱,我正在使用 smtp 邮件方法。我已经设置了主机名、用户名和密码。

  <?php

  define("SMTP_HOST", "mail.test.us"); //Hostname of the mail server
  define("SMTP_PORT", "25"); //Port of the SMTP like to be 25, 80, 465 or 587
  define("SMTP_UNAME", "tttt"); 
  //Username for SMTP authentication any valid   email created in your domain
  define("SMTP_PWORD", "tttt"); //Password for SMTP authentication
  ?>

邮件代码

//smtp mail
$mail   = new PHPMailer;
$mail->Host = SMTP_HOST; 
$mail->Port = SMTP_PORT; 
$mail->SMTPAuth = true; 
$mail->Username = SMTP_UNAME; 
$mail->Password = SMTP_PWORD; 
$mail->AddReplyTo("test@test.com", "zamisoft"); 
$mail->SetFrom("test@test.com", "zamisoft.com"); 
$mail->Subject = $subject; 
$mail->AddAddress($to, '');
$mail->MsgHTML($message);
$send = $mail->Send(); 
$mail->ClearAddresses();

//smtp mail

有人可以解决这些问题吗?

【问题讨论】:

  • 您也从未指定,您使用的是廉价的共享主机、VPS 还是专用服务器?邮寄共享主机的每小时限制通常较低,约为每小时 200-400 封电子邮件,并且尝试发送太多电子邮件可能(并且将会)让您被暂停。 VPS 通常可以发送少量邮件(可能每月 30k-50k)。但是,一些网络主机不喜欢通过电子邮件发送他们的 VPS 或仍然有每小时限制。专用服务器通常是无限的,但像 GoDaddy 这样的主机仍然会挑剔您通过电子邮件发送到更大的列表。
  • 我的服务器在godaddy
  • 我了解您使用 GoDaddy。 GoDaddy 提供了一些托管选项。您拥有的托管类型之间存在巨大差异。如果您使用廉价的共享主机,您可能无法设置 SPF 和 DKIM,而且它们通常对共享帐户上的电子邮件非常挑剔。此外,可能有 60 多个其他人共享相同的 IP 地址,从而扼杀了您收件箱的机会。 VPS 和专用通常为您提供 root 访问权限和您自己的 IP 地址。如果您是共享的(每月支付约 5-15 美元),那么您无能为力。我最好的建议,就是使用 SendGrid!
  • 现在我使用普通服务器发送邮件,不是godaddy,而是邮件去垃圾邮件,我已经启用了SPF和TKIM,你能说任何解决方案

标签: php smtp


【解决方案1】:

在您的电子邮件中添加标题

$headers='From: ann@zamisoft.com \r\n';
$headers.='Reply-To: ann@zamisoft.com\r\n';
$headers.='X-Mailer: PHP/' . phpversion().'\r\n';
$headers.= 'MIME-Version: 1.0' . "\r\n";
$headers.= 'Content-type: text/html; charset=iso-8859-1 \r\n';
$headers.= "BCC: to";

我已经有一段时间没有使用 PHP 邮件了,但如果这不起作用,它应该会让你走上正轨。

【讨论】:

  • 他正在使用 PHPMailer,它为你处理标题,你的方法对他来说是倒退的。他的问题与 SQL 查询或构建密件抄送列表无关。代码方面,他很可靠。他需要设置 SPF 和 DKIM,并确保他没有触发垃圾邮件过滤器,他的电子邮件没有被列入黑名单等。
  • 使用 PHP 邮件程序发送是我最终将邮件放入垃圾箱的方式。倒退对我有用。
  • 有无数的页面都支持 php mail() 很糟糕。从服务器发送电子邮件时,您应该使用 SMTP 连接和有效的电子邮件帐户,并在服务器上禁用 mail()。垃圾邮件发送者侵入服务器并设置垃圾邮件场以利用允许 mail() 的服务器。因此,像 Google 和 Yahoo 这样的大多数地方都认为来自 php 脚本的电子邮件是不受信任的。使用 SMTP 时,您需要设置 SPF 和 DKIM。您的问题不是使用 SMTP,而是没有正确设置,您还需要做更多事情。
  • @WadeShuler,不要把它变成个人的。
【解决方案2】:

确保您已设置 SPF 和 DKIM。由于您是从自己的服务器发送邮件,因此强烈建议您这样做。

这是一个带有屏幕截图的 Namecheap 链接。我无法更好地解释它: https://www.namecheap.com/support/knowledgebase/article.aspx/9214/31/email-authentication-tool-in-cpanel-spf-records

此外,还有各种检查器可以很好地验证您的 SPF、DKIM 并检查其他内容并给它打分。

http://www.port25.com/support/authentication-center/email-verification/

https://www.mail-tester.com

http://dkimvalidator.com

从您自己的服务器发送邮件时您唯一可以做的事情。使用 SPF 和 DKIM。远离垃圾邮件。一个错误的词可能会造成垃圾邮件或收件箱的不同。有用于测试的基线电子邮件和基线主题。我有一个口号让我进入垃圾邮件文件夹,所以我不得不更改它,因为我希望它出现在我的电子邮件签名中。使用某些链接缩短器可能会使您进入垃圾邮件文件夹。我不是说他们这样做,但使用 bit.ly 或 tinyurl 链接可以让你到达那里。可以使用 tinypic 或其他图像托管服务。您的域名可能是问题所在!发件人姓名..

请记住,每个单词(无论是在您的电子邮件地址、域名、主机名、主题还是电子邮件正文中)都会被查看。

以及您的服务器的 IP 地址。它在任何黑名单上吗?用http://mxtoolbox.com/blacklists.aspx检查一下

如果我们没有一个人真正进入您的服务器并发送数十封测试电子邮件以查看实际原因,我只能告诉您要检查的数十件事情。

话虽如此,从您的服务器邮寄很糟糕,我不建议这样做。我建议使用 SendGrid 或 Mailgun。我有一个客户端登陆垃圾邮件文件夹,在新服务器上,干净的 IP,新域,一切。我把他放在 SendGrid 上,他立即进入收件箱。

对于开发或低级别网站,如果您大部分时间都在访问收件箱,那么从您的服务器发送邮件就可以了。但是任何认真对待他们的网站并且进入收件箱的电子邮件很重要的人,请使用第 3 方。大多数服务器(来自 GoDaddy、Hostgator 等)并非用于向数以万计的客户发送电子邮件。它们是 Web 服务器,而不是邮件 (MX) 服务器,它们会告诉您这不是它们的问题。

更新:我忘了提到反向 DNS。您应该有 rDNS 设置,这是由您的上游完成的。因此,您需要联系您的虚拟主机并要求他们在您的服务器上设置“反向 DNS”。

【讨论】:

  • 在我的服务器 cpanel 中看不到“电子邮件身份验证”选项
  • 服务器是老爹服务器
  • 我不知道 GoDaddy 服务器,但我知道 cpanel。 GoDaddy 可能有他们自己的自定义、破解版的 cpanel 模板。我不喜欢 GoDaddy,并且知道很多人也不喜欢他们。您也许可以将 cpanel 主题更改为 x3,这是默认主题。 - 这是真实cpanel的截图:cpaneldemos.com/images/screenshot_x31.gif
  • 无论如何,它们不是电子邮件服务器,它们是用于托管您的网站的网络服务器。发送到达收件箱的电子邮件不是他们的问题,也不是他们提供的服务。他们可能会帮助您设置 SPF 和 DKIM,但之后他们会告诉您太糟糕了。我使用了大量带有专用服务器、VPS 的主机,都是一样的。他们不是通过电子邮件发送服务器。如果您需要可靠地发送电子邮件,请获取 MX 提供商。您可以将 MX 服务器用于大容量,或者只是一个 SMTP 帐户,或者使用 SendGrid 或 Mailgun。
  • 看来我被一个不知道他们在说什么的人投了反对票。我曾经每月从我的专用服务器向超过 10 万个联系人发送大约 2-4 次。从您自己的网络服务器发送邮件的收件箱率始终较低。如果您按照我所说的一切操作,但仍然遇到问题,那么您可能需要尝试不同的服务器。如果您要发送大量电子邮件,那么无论如何您都不应该从您的网络服务器上邮寄。 - 我的回答是迄今为止发布在这里的最翔实和最彻底的回答。为 mail() 删除 PHPMailer 就像从法拉利变成马车
【解决方案3】:

你能显示你的邮件内容吗?您是否尝试发送 HTML 或文本邮件?可能提供商在黑名单上,请在blacklist check 检查发送 IP 地址(请参阅邮件标头)。

只有在使用 mail() 发送时,我才遇到 Google Mail 的这些垃圾邮件问题 - 更改为 SMTP 后一切正常。

【讨论】:

  • 正文内容包括html和一张图片
  • 如果您发送的邮件没有图像怎么办?
  • 没有这些图片,邮件进入垃圾邮件
  • 代码似乎是正确的,邮件也发送正确。您是否尝试过使用其他 SMTP 服务器和帐户,例如 Google Mail?
猜你喜欢
  • 1970-01-01
  • 2018-04-01
  • 2012-07-24
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
相关资源
最近更新 更多