PHPMailer 和 GoDaddy

PHPMailer & GoDaddy

我的问题很简单:用PHPMailer发邮件,我遵循了godaddy的规则:

$mail = new PHPMailer();
$mail->IsSMTP(); 
$mail->SMTP_AUTH = false;
$mail->Port = 25;
$mail->Host = "relay-hosting.secureserver.net"; 
$mail->FromName = "mycomercial@mycomercialemail.com.br"; 

$mail->SMTPDebug = 2;
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("mygmailemail@gmail.com");

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

这段代码是我在搜索过的很多论坛都看到的,但是还是发不出去,收到的是:

2018-10-16 22:31:25 SMTP ERROR: Failed to connect to server: Connection refused (111) 2018-10-16 22:31:25 SMTP connect() failed

这是他们推荐的服务器?为什么我无法连接?感谢大家的帮助

好吧,我已经联系了 goDaddy 支持(非常好),他们说在他们的服务器中使用本地主机,所以我更改了我的代码,仍然没有用,但至少连接到服务器并给了我错误: STARTTLS,在网上搜索我找到了这个解决方案:solution

$mail = new PHPMailer(true);
$mail->IsSMTP(); // Using SMTP.
$mail->SMTPDebug = 1;
$mail->SMTPAuth = false; // Enables SMTP authentication.
$mail->Host = "localhost"; // GoDaddy support said to use localhost
$mail->Port = 25;
$mail->SMTPSecure = 'none';

//havent read yet, but this made it work just fine
$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

$mail->AddReplyTo('comercial@email.com.br', 'Me');
$mail->AddAddress('my@gmail.com', 'Them'); 
$mail->SetFrom('comercial@email.com.br', 'Me');
$mail->Subject = 'PHPMailer Test Subject via smtp, basic with authentication';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
$mail->MsgHTML("Hi, this is an test email");
if(!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message has been sent";
}

为了完成,他们还给了我这个脚本:Github 以三种不同的方式测试电子邮件发送,但是这个脚本发送的电子邮件可能会进入您的垃圾邮件(第一个脚本正常),所以他们说有必要用TXT记录和DNS配置一些东西,这是支持给我的数据:

Add TXT record

Host:@

TXT value :v=spf1 a mx ptr include:secureserver.net -all

TTL: 1 hour

但我不确定这一点,不幸的是,我不能留下这个解决方案,因为我必须去看医生,谢谢大家的关注。

问题是通过 goDaddy 的 SMTP 连接有点棘手,因为它们对发送电子邮件施加了严格的限制。如果不需要 SMTP,您可以使用以下代码强制 phpMailer 使用内置的 mail() 函数:

$mail = new PHPMailer();
$mail->isMail(); //using mail() function