0

我正在处理一个使用 phpmailer 类的网络邮件。问题是我收到错误“SMTP 错误:无法连接到 SMTP 主机。消息未发送 PHP Mailer 错误:SMTP 错误:无法连接到 SMTP 主机。”

我的代码是:

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

<?php

//error_reporting(E_ALL);
error_reporting(E_STRICT);

date_default_timezone_set('America/Toronto');

require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$mail->Port = 465;
$mail->Host = 'smtp.gmail.com'; // "ssl://smtp.gmail.com" didn't worked
$mail->IsHTML(true); // if you are going to send HTML formatted emails
$mail->Mailer = 'smtp';
$mail->SMTPSecure = 'ssl';

$mail->SMTPAuth = true;
$mail->Username = "email@gmail.com";
$mail->Password = "mypass";

$mail->SingleTo = true; // if you want to send mail to the users individually so that no recipients can see that who has got the same email.

$mail->From = "email@gmail.com";
$mail->FromName = "mypass";

$mail->addAddress("livelyphoneix@yahoo.com","User 1");
$mail->addAddress("user.2@gmail.com","User 2");

$mail->addCC("user.3@ymail.com","User 3");
$mail->addBCC("user.4@in.com","User 4");

$mail->Subject = "Testing PHP Mailer with localhost";
$mail->Body = "Hi,<br /><br />This system is working perfectly.";

if(!$mail->Send())
    echo "Message was not sent <br />PHP Mailer Error: " . $mail->ErrorInfo;
else
    echo "Message has been sent";

?>

</body>
</html>

And my php.ini setting is :

    [mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP =
; http://php.net/smtp-port
;smtp_port = 465

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = you@domain.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path ="C:\wamp\sendmail\sendmail.exe -t -i"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;

有人想让我知道我错在哪里,我需要你对这个问题的关注。

4

2 回答 2

2

尝试更换

 $mail->SMTPSecure = 'ssl';

经过

$mail->SMTPSecure = 'tls';
于 2013-06-15T08:08:27.070 回答
0

您的 smtp 主机设置正确,但您的 $mail->Mailer = 'smtp'; 应该是 $mail->Mailer = 'mail'; 除非您有自己的 smtp 服务器来发送直接 smtp?...我不太确定,但我经历过,伙计...;)

于 2014-04-09T13:59:42.433 回答