1

我正在使用此代码尝试使用 SMTP 发送电子邮件,但出现错误

<html>
<head>
<title>PHPMailer - SMTP basic test with authentication</title>
</head>
<body>

<?php

//error_reporting(E_ALL);

phpinfo();

require("../class.phpmailer.php");
require("../class.smtp.php");

define("PHPMAILERHOST",'smtp.gmail.com');
date_default_timezone_set('Asia/Tehran');
$mail = new PHPMailer();
ini_set('display_errors', 1);

$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp.gmail.com"; // specify main and backup server
$mail->Port = "465"; // SMTP Port
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->SMTPSecure= "ssl"; // SMTP connection type
/************************************************** *********************************/
/************************************************** *********************************/
$mail->Username = "XXXXXXXXXX@gmail.com"; // SMTP username
$mail->Password = "XXXXXX"; // SMTP password
// Send email to :
$mail->AddAddress("masoudy.maryam@gmail.com"); // will receive the test email
/************************************************** *********************************/
/************************************************** *********************************/
//$mail->AddAddress("second-receiver@gmail.com", "Josh Adams");
//$mail->AddReplyTo("example@gmail.com", "Information");
$mail->WordWrap = 50; // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = "hahahahahahahahahahhahhahahahhahahha";
$mail->Body = '<html><meta http-equiv="content-type" content="text/php; charset=utf-8"/><body>
layay layayya رسید بگو
</body></html>

';
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";

?>

</body>
</html>

此代码在本地没有任何问题我可以在本地(wamp 服务器)发送电子邮件但在服务器中我有错误:

SMTP Error: Could not connect to SMTP host. Message could not be sent.

Mailer Error: SMTP Error: Could not connect to SMTP host.

我确定 ssl 端口已启用我调用 phpinfo() 我有这个结果请帮助我 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

1

鉴于上述所有评论,听起来您的 PHP 正在运行的机器上的本地 SMTP 服务器可能存在一些问题。您可以从命令行尝试一些测试(如上面提到的那些)以进行故障排除。或者,您可能想简单地绕过这台机器上的本地 SMTP 服务器,使用 phpmailer 通过远程 SMTP 中继服务器发送外发邮件。如果您有 gmail 帐户,则可以使用 smtp.gmail.com,也可以使用您有权访问的任何其他 SMTP 服务器。phpmailer 易于设置 - 只需将几个 PHP 文件复制到您的服务器。见https://github.com/PHPMailer/PHPMailer. 然后,您可以使用上面 github 页面上的简单示例作为样板开始发送邮件。phpmailer 还将处理您所有的 MIME 编码,因此您不必像现在这样从头开始。

于 2013-07-24T16:03:32.473 回答