好吧,我有一个问题,我真的没有任何线索,已经阅读了所有可以找到的东西。
我在使用phpMailer的php中有一个使用gmail的php代码,当终端打开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对发送电子邮件施加了非常严格的限制(以至几乎变得毫无用处)。它们阻止出站到端口25、465和587的SMTP到所有服务器(除了它们自己的服务器)。此问题是有关堆栈溢出的许多令人沮丧的问题的主题。如果您发现脚本可以在本地计算机上运行,但是当您将其上载到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
属于任何AOL,Gmail,Yahoo,Hotmail,Live,Aim或MSN域的文件(请参阅其文档)。这是因为所有这些域都部署了SPF和DKIM防伪措施,而伪造您的地址是伪造的。
您可能会发现更容易转而使用开明的托管服务提供商。
最佳答案
我想您缺少IsSMTP()设置:
$mail = new PHPMailer();
$mail->IsSMTP();
关于php - 使用Gmail SMTP发送邮件php不要到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42137434/