PHPMailer无法发送电子邮件。

3
我正在使用phpmailer,但出现以下错误:

邮件未发送 邮件程序错误:SMTP错误:无法连接到SMTP主机。

<?php
require("class.phpmailer.php");
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->Host = 'ssl://smtp.myhost.com:465';
$mailer->SMTPAuth = TRUE;
$mailer->Username = 'myemail@myhost.com';
$mailer->Password = 'mypass';
$mailer->From = 'myemailagain@myhost.com';
$mailer->FromName = 'myname';
$email1 = $_GET['email'];
$verification = rand();
$mailer->Body = 'Welcome to our site';
$mailer->Subject = 'verification';
$mailer->AddAddress($email1);
if(!$mailer->Send())
{
   echo "Message was not sent<br/ >";
   echo "Mailer Error: " . $mailer->ErrorInfo;
}
else
{
   echo "Message has been sent";
}
?> 

注意:我使用“myhost.com”,但这不是我的真实域名


4
你需要将它指向一个SMTP主机。 myhost.com 不存在。 - Polynomial
你的SMTP服务器是否真正支持在465端口上使用SSL加密发送电子邮件? - Marc B
是的,应该可以。有没有任何命令可以检查以验证这一点?(我有一个默认安装的http/https、电子邮件、ftp、ftps、pop、imap服务器 - 专用托管全新) - Ken
@Crontab 我无法连接,我猜那就是问题所在。 - Ken
这个问题已经被问过并回答了很多次。例如:http://stackoverflow.com/questions/7957573 - djdy
1个回答

4

我相信您的主机名称输入有误,请尝试以下更正:

$mailer->Host="smtp.myhost.com";
$mailer->Port=465;
$mailer->SMTPSecure="ssl"; //If this doesn't work, try 'tls'

如果仍然无法正常工作,请考虑进行以下设置:
$mailer->SMTPDebug=1;

此外,请确保启用了 PHP 的 OpenSSL 扩展。

  1. 服务之前无法运行,现在已经恢复正常。
  2. 我的原始代码无法运行,但是这个可以,谢谢。
- Ken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接