2012-03-08 18 views
1

私はPHPMailerクラスを使用して文字を送信し、私はSMTPサーバとしてGmailアカウントを使用します。 問題は時にはうまくいくもので、訪問者は手紙を受け取ることもありますが、時には「メッセージ本文が空です」というエラーが表示されることがあります。 コードに問題があると思うので、ウェブサイトの訪問者には手紙を送っていないと思います。 なぜこのようなhappien?何が問題なの?でPHPMailerはメールを送信しないことがあります。私はGmailのsmtpを使用します

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

+0

コードを投稿できますか? –

答えて

0

私のコードは

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', '[email protected]'); // 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("[email protected]", "$siteuser_name"); 
    $mail->AddAddress("$mailadd", "$maillname"); 
    // $mail->SetFrom("$siteadminemail", "$siteuser_name"); 
    $mail->SetFrom("[email protected]", "$siteuser_name"); 
    // $mail->AddReplyTo("$mailadd", "$maillname"); 
    $mail->AddReplyTo("[email protected]", "$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 ""; 
    } 


} 
1

変更これらの行である

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

、うまくいけば、すべての今から大丈夫だろう。

0

$ mail-> Senderプロパティを追加します。

例: $ mail-> Senderは$ mail-> Fromと同じ値で、2行追加します。

$ mail-> From = "[email protected]"; $ mail-> Sender = "[email protected]";

関連する問題