【问题标题】:Sending mail php using gmail SMTP don`t arrives使用 gmail SMTP 发送邮件 php 不会到达
【发布时间】:2017-06-27 12:08:41
【问题描述】:

嗯,我有一个问题,我真的没有任何线索,并且已经阅读了我能找到的所有内容。

我有一个使用 phpMailer 的 php 代码,它使用 gmail,当终端打开 php 存档时,电子邮件会到达它们应该到达的地方,但是,当我上传到服务器时,如果电子邮件永远不会到达最终的命运到达邮件。

在我的情况下,我想发送到电子邮件 exemple@companyName.io,这也是一封 gmail 电子邮件。

我只是想不通为什么当电子邮件被发送到 hotmail 或 gmail 帐户(exemple@gmail.com)但发送到 exemple@companyName.io(即 gmail也)不起作用。

提前致谢!

PHP 代码:

<?php

date_default_timezone_set('Etc/UTC');

require 'PHPMailerAutoload.php';


$mail = new PHPMailer();


$mail->SMTPDebug = 2;

$mail->Debugoutput = 'html';


$mail->Host = 'smtp.gmail.com';



$mail->Port = 587; //same problem with other ports


$mail->SMTPSecure = 'tls'; //same problem with ssl


$mail->SMTPAuth = true;


$mail->Username = "exemple@gmail.com";


$mail->Password = "password";


$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['message']);

$mail->setFrom($email, $name);


$mail->addAddress('exemple@CompanyName.io', 'exemple Name');      

$mail->Subject = 'Contact';


$mail->Body = $message;


if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}

编辑:

我找到了答案,我的服务器来自godaddy,所以:

GoDaddy

美国流行的托管服务提供商 GoDaddy 对发送电子邮件施加了非常严格的限制(到了几乎无用的地步)。他们阻止到端口 25、465 和 587 的出站 SMTP 到除他们自己的服务器之外的所有服务器。这个问题是 Stack Overflow 上许多令人沮丧的问题的主题。如果您发现您的脚本可以在本地计算机上运行,​​但在您将其上传到 GoDaddy 时却无法运行,那么这就是发生在您身上的事情。 GoDaddy 对解决方案的记录极差:您必须通过他们的服务器发送,并禁用所有安全功能、用户名和密码(太好了,嗯?!),为您提供 PHPMailer 的配置:

$mail->isSMTP();
$mail->Host = 'relay-hosting.secureserver.net';
$mail->Port = 25;
$mail->SMTPAuth = false;
$mail->SMTPSecure = false;
GoDaddy also refuses to send with a From add

ress 属于任何 aol、gmail、yahoo、hotmail、live、aim 或 msn 域(请参阅他们的文档)。这是因为所有这些域都部署了 SPF 和 DKIM 防伪措施,并且伪造您的发件人地址是伪造的。

您可能会发现切换到更开明的托管服务提供商会更容易。

【问题讨论】:

  • 您收到的错误信息是什么?
  • 如果您发送的电子邮件到达 hotmail 和 gmail 而不是 companyName.io,那么问题出在 companyName.io(而不是您的脚本)。也许有防火墙或过滤器,它作为垃圾邮件接收?
  • @Sooraj 我没有收到错误,php 发送电子邮件但如果不是 gmail 它永远不会到达:/
  • @DiogoSgrillo 我在所有跨页等中寻找,但我没有找到它们:/
  • 你检查过垃圾邮件文件夹吗?

标签: php email server phpmailer


【解决方案1】:

我猜你缺少 IsSMTP() 设置:

$mail = new PHPMailer();
$mail->IsSMTP();

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-06-17
  • 2015-10-22
  • 1970-01-01
  • 2017-11-14
  • 2011-04-01
  • 2011-08-11
  • 2016-07-14
相关资源
最近更新 更多