GoDaddy Linux Shared 上的 PHP 尝试通过 GMAIL SMTP 发送
为此,我已经尝试了在 StackOverflow 和其他网站上发布的每一个脚本/代码/方法,但没有运气.我在 GoDaddy 上托管.我已经设置了一个 Google App 帐户,设置了 MX 记录所需的一切(为此使用 GoDaddy 工具),甚至尝试从我的站点的 GMAIL 界面发送一些电子邮件,以及通过我的一个 unix 上的终端中的 SMTP机器.这一切都奏效了.
I have tried EVERY single script/code/method posted on StackOverflow and other sites for this, but with no luck. I am hosting on GoDaddy. I have setup a Google App account, set up everything needed for MX Records (using the GoDaddy tool for that), and even tried sending some emails from the GMAIL interface for my site, as well as through SMTP in terminal on one of my unix machines. It all worked.
但是,当我尝试使用 PHP 时,它没有!是不是像 GoDaddy 以某种方式阻止它?
HOWEVER, when I try using PHP, it doesn't! Is it like GoDaddy blocking it somehow?
我总是收到:
SMTP -> 错误:连接失败服务器:连接被拒绝 (111) SMTP错误:无法连接到 SMTP 主机.邮件程序错误:SMTP 错误:无法连接到 SMTP 主机.
SMTP -> ERROR: Failed to connect to server: Connection refused (111) SMTP Error: Could not connect to SMTP host. Mailer Error: SMTP Error: Could not connect to SMTP host.
这是我用于 PHPMailer 的代码:
Here's the code I am using for PHPMailer:
<html>
<head>
<title>PHPMailer - SMTP (Gmail) advanced test</title>
</head>
<body>
<?php
require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "MYFROMADDRESSHERE"; // GMAIL username
$mail->Password = "MYFROMPASSWORDHERE"; // GMAIL password
$mail->AddReplyTo('MYFROMADDRESSHERE', 'Sender Name');
$mail->AddAddress('TESTTOADDRESSHERE', 'Recipient Name');
$mail->SetFrom('MYFROMADDRESSHERE', 'Sender Name');
$mail->AddReplyTo('MYFROMADDRESSHERE', 'Sender Name');
$mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
$mail->MsgHTML(file_get_contents('contents.html'));
$mail->AddAttachment('images/phpmailer.gif'); // attachment
$mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
$mail->Send();
echo "Message Sent OK</p>
";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
?>
</html>
谢谢!
推荐答案
如前所述,众所周知,GoDaddy 会阻止传出 SSL SMTP 连接,以强制您使用自己的传出邮件服务器.
As discussed previously, GoDaddy has been known to block outgoing SSL SMTP connections in favor of forcing you to use their own outgoing mail server.
这几乎只是冰山一角,因为 GoDaddy 作为一家公司、注册商和网络托管服务商非常糟糕.抛弃他们.
This is pretty much the tip of the iceberg, with regard to the immense suckitude of GoDaddy as a company, registrar and web host. Ditch'em.
相关文章