PHPMailer иногда отправляет письма, иногда нет. Я использую Gmail SMTP - PullRequest
1 голос
/ 08 марта 2012

Я использую класс PHPMailer для отправки писем и использую учетную запись gmail в качестве сервера smtp. Проблема в том, что иногда это работает хорошо, и посетители получают письма, а иногда нет и показывают мне ошибку «Тело сообщения пусто» или что-то в этом роде. Я думаю, если будут проблемы с кодом, поэтому не отправляйте письма посетителям сайта. почему happyien как это? в чем может быть проблема?

Ответы [ 3 ]

1 голос
/ 11 апреля 2012

Измените эти строки:

$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Port = 465;

С:

$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for Gmail
$mail->Port = 587;

и, надеюсь, теперь все будет хорошо.

0 голосов
/ 19 апреля 2015

Добавить свойство $ mail-> Sender.

Например: $ mail-> Sender совпадает со значением $ mail-> From, и я добавляю две строки.

$ mail-> From = "noreply@test.com"; $ mail-> Sender = "noreply@test.com";

0 голосов
/ 17 марта 2012

мой код

function mail_send($type, $id, $mailadd, $maillname) {
    global $lang;
    global $site_adress;
    global $pavadinimas;
    global $tekstas;
    global $ivadas;
    global $full_date;
    global $short_date;

    require_once ('includes/phpmailer/class.phpmailer.php');
    $mail = new PHPMailer();

    $siteuser_name = SQL_ROW("users", "WHERE user_id='1'", "user_name");
    $siteadminemail = SQL_ROW("users", "WHERE user_id='1'", "user_email");
    $alttext = users_langs(altmailtext);
    if ($type == "mailactiveletter") {
        $subj = users_langs("mailactivesubject");
        $linktur = "$site_adress/$lang/usermail_$type-$id.html#kat";
        //    var_dump($linktur,$type, $siteuser_name,$siteadminemail);
    }
    if ($type == "mailchangeadress") {
        $subj = users_langs("prisijduomenupriminimas");
        $linktur = "$site_adress/$lang/usermail_$type-$id.html#kat";
    }
    $body = file_get_contents("$linktur");
    $body = eregi_replace("[\]", '', $body);

    define('GUSER', 'uxxxx@gmail.com'); // Gmail username
    define('GPWD', 'xxx'); // Gmail password

    $mail->IsSMTP(); // enable SMTP
    $mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true;  // authentication enabled
    $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 465;
    $mail->Username = GUSER;
    $mail->Password = GPWD;
    $mail->CharSet = 'UTF-8';
    //$mail->AddReplyTo("$siteadminemail", "$siteuser_name");
    $mail->AddReplyTo("no-replay@xxx.co.uk", "$siteuser_name");
    $mail->AddAddress("$mailadd", "$maillname");
    // $mail->SetFrom("$siteadminemail", "$siteuser_name");
    $mail->SetFrom("no-replay@xxx.co.uk", "$siteuser_name");
    // $mail->AddReplyTo("$mailadd", "$maillname");
    $mail->AddReplyTo("no-replay@xxx.co.uk", "$siteuser_name");

    $mail->Subject = "$subj";

    $mail->AltBody = "$alttext $linktur";
// optional, comment out and test
    $mail->MsgHTML($body);

    if (!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "";
    }


}
...