【发布时间】: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