4

次のリンクを調べました。

phpmailerはgmail smtpタイムアウトを送信します

PHP Mailer を介して Gmail SMTP サーバーを使用してメールを送信する

http://uly.me/phpmailer-and-gmail-smtp/

...そして、それらの組み合わせを自分で実装しようとしましたが...ほとんどの場合、このメッセージが送信されます...

メッセージを送信できませんでした。

メーラー エラー: SMTP connect() が失敗しました。

ただし、「tls」と「ssl」の間で実験したときに、これを送信することが1回ありました...

SMTP エラー: サーバーへの接続に失敗しました: 接続がタイムアウトしました (110) SMTP connect() が失敗しました。メッセージを送信できませんでした。

メーラー エラー: SMTP connect() が失敗しました。

私のコードが添付されています...私はどういうわけか何かを逃しましたか? ウェブ ホスティング サービスにブロックしているかどうかを尋ね、私のコードのテンプレートを提供しました。サーバーは Gmail の SMTP への接続を許可しているとのことでした。

    require_once("class.phpmailer.php");
    $mail = new PHPMailer();
    $mail -> IsSMTP();
    $mail -> SMTPDebug = 2;
    $mail -> SMTPAuth = 'true';
    $mail -> SMTPSecure = 'tls';
    $mail -> SMTPKeepAlive = true;
    $mail -> Host = 'smtp.gmail.com';
    $mail -> Port = 587;
    $mail -> IsHTML(true); 

    $mail -> Username = "myemail@gmail.com";
    $mail -> Password = "mypassword";
    $mail -> SingleTo = true; 

    $to = xxx;                           
    $from = xxx;
    $fromname = xxx;
    $subject = xxx;
    $message = xxx
    $headers = "From: $from\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\n";

    $mail -> From = $from;
    $mail -> FromName = $fromname;
    $mail -> AddAddress($to);

    $mail -> Subject = $subject;
    $mail -> Body    = $message;

    if(!$mail -> Send()){
        echo "Message could not be sent. <p>";
        echo "Mailer Error: " . $mail-> ErrorInfo;
        exit;
    }
4

8 に答える 8

2

SSL を使用する

$mail -> SMTPSecure = 'ssl';

ポートは 465 にする必要があります

$mail -> Port = 465;

ホストを次のように変更します。

$mail -> Host = 'ssl://smtp.gmail.com';

うまくいけばうまくいく

于 2013-10-07T03:11:28.120 に答える
1

ウェブホストから gmail にアクセスできることを確認してください。私はそれがLinuxだと仮定しています。コマンドラインタイプでのSSH

telnet smtp.gmail.com 587

あなたは戻ってくるべきです

Connected to smtp.something 

ローカルホストとプロバイダーの構成の違いである必要があります

于 2013-10-07T03:13:49.797 に答える