0

問題は、「SMTP エラー: SMTP ホストに接続できませんでした。メッセージが送信されませんでした。PHP メーラー エラー: 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 に答える