我正在尝试使用没有TLS的PHPMailer发送电子邮件,但PHPMailer仍尝试使用TLS发送电子邮件,即使我不启用它:
include_once("PHPMailer-master\PHPMailerAutoload.php");
$To = 'some@site.com';
$Subject = 'Topic';
$Message = 'msg test';
$Host = 'site.com.br';
$Username = 'contact@site.com.br';
$Password = 'pass';
$Port = "587";
$mail = new PHPMailer();
$body = $Message;
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = $Host; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
//$mail->SMTPSecure = 'ssl'; //or tsl -> switched off
$mail->Port = $Port; // set the SMTP port for the service server
$mail->Username = $Username; // account username
$mail->Password = $Password; // account password
$mail->SetFrom($Username);
$mail->Subject = $Subject;
$mail->MsgHTML($Message);
$mail->AddAddress($To);
if(!$mail->Send()) {
$mensagemRetorno = 'Error: '. print($mail->ErrorInfo);
echo $mensagemRetorno;
} else {
$mensagemRetorno = 'E-mail sent!';
echo $mensagemRetorno;
}
Run Code Online (Sandbox Code Playgroud)
发送电子邮件后,我收到了这条消息:
2016-09-01 21:08:55 CLIENT -> SERVER: EHLO www.johnmendes.com.br
2016-09-01 21:08:55 CLIENT -> SERVER: STARTTLS
2016-09-01 21:08:55 SMTP ERROR: STARTTLS command failed: 454 TLS not available due to temporary reason
2016-09-01 21:08:55 SMTP Error: Could not connect to SMTP host.
2016-09-01 21:08:55 CLIENT -> SERVER: QUIT
2016-09-01 21:08:55 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Erro ao enviar e-mail: 1
Run Code Online (Sandbox Code Playgroud)
服务器不支持ssl或tls.
任何的想法?
Syn*_*hro 28
这在PHPMailer文档中有所介绍.PHPMailer做机会主义TLS - 如果服务器宣传它可以做TLS(你的那个),它会自动使用它而不需要你.你可以禁用它:
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
Run Code Online (Sandbox Code Playgroud)
从错误消息,这似乎是您的托管服务提供商的临时问题.如果设置,您会看到更多信息$mail->SMTPDebug = 2;.
我可以看到你的代码基于一个过时的例子,因此请确保你拥有最新版本的PHPMailer,并将代码基于随附的示例.