2016-09-30 11 views
1

を送信しない、これは私が今持っているもので、無電子メールはphpmailerのメーリングリスト私はメーリングリストでメールを送信する問題を抱えている

public function mailingList($email, $nome, $message){ 
    $destinatário = $this->getAllEmails(); 
    $mail = new PHPMailer; 
    $mail->isSendmail(); 
    $mail->setFrom('[email protected]', 'Webmaster'); 
    $mail->IsHTML(true); 
    $mail->Subject = 'Informação - XXXX'; 
    $mail->CharSet = 'UTF-8'; 
    $mail->Body = " 
     <html> 
     <head> 
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 
     </head> 
     <body> 
      <h1>Mensagem da Administração</h1> 
      <table> 
      <tbody> 
      <tr> 
      <td><strong>Mensagem:</strong></td> 
      </tr> 
      <tr> 
      <td>$message</td> 
      </tr> 
      </tbody> 
      </table> 
      <p>&nbsp;</p> 
      <p>&nbsp;</p> 
      <p>Equipa xxxxx.</p> 
      <p>&nbsp;</p> 
      <p>Obrigado</p> 
      </body> 
      </html>"; 
    $mail->addAttachment('../img/logo_pek.gif'); 
    foreach ($destinatário as $dest) { 
     $correio = $dest['email']; 
     if($correio != ''){ 
      $mail->ClearAddresses(); 
      $mail->addAddress($correio, 'Informação - XXXX'); 
     } 
     if (!$mail->send()) { 
      echo "Mailer Error: " . $mail->ErrorInfo; 
      return array('status' => 'error', 'message' => 'O email não foi enviado...'); 
     } 
     else{ 
      echo "Ok"; 
      return array('status' => 'success', 'message' => 'O email foi enviado com sucesso...'); 
     } 
    } 
} 

をsendedではされています私はすべての電子メールを持っているので、電子メールが送信されない理由は分かりません。 助けてください?

foreach ($destinatário as $dest) { 
    $correio = $dest['email']; 
    if($correio != ''){ 
     $mail->ClearAddresses(); 
     $mail->addAddress($correio, 'Informação - XXXX'); 
    } 
    if (!$mail->send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 
     return array('status' => 'error', 'message' => 'O email não foi enviado...'); 
    } 
    else{ 
     echo "Ok"; 
     return array('status' => 'success', 'message' => 'O email foi enviado com sucesso...'); 
    } 
} 

それらreturn staementsのどちらかが完全に機能を終了しますので、それを超えて取得することはありません:

+1

1つの電子メールを送信する作業はありますか?エラーメッセージとは何ですか? –

+0

PHPMailerに付属のメーリングリストの例を見ることをお勧めします。 – Synchro

答えて

1

この例およびテストを使用してください最初のメッセージであり、そのうちの1つだけでなく、各送信結果を追跡する必要があります。私はあなたが次のようなものを意味したと思う:

$results = []; 
foreach ($destinatário as $dest) { 
    $correio = $dest['email']; 
    if($correio != ''){ 
     $mail->ClearAddresses(); 
     $mail->addAddress($correio, 'Informação - XXXX'); 
    } 
    if (!$mail->send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 
     $results[$correio] = array('status' => 'error', 'message' => 'O email não foi enviado...'); 
    } 
    else{ 
     echo "Ok"; 
     $results[$correio] = array('status' => 'success', 'message' => 'O email foi enviado com sucesso...'); 
    } 
} 
return $results; 
+0

ありがとう、私は今すぐ送ることができますが、私は応答がありません – gmc1972

+0

あなたは何を意味するか分かりません。メールサーバーのログを確認しますか? – Synchro

+0

私は今、私は別の1つの内部に配列を持っていることを意味します、この{"[email protected]":{"ステータス": "成功"、 "メッセージ": "Oメールfoi enviado com sucesso ..."}}私はこの関数を持っているので、私の応答は未定義です$ ret = $ ebspma-> mailingList ($ email、$ nome、$ message); echo json_encode($ ret); – gmc1972

-1

あなたのループ内の単純な間違いがあります

<?php 

require_once 'class.phpmailer.php'; 
$mail = new PHPMailer(); 
// Now you only need to add the necessary stuff 

// HTML body 

$body = "</pre> 
<div>"; 
$body .= " Hello 
"; 
$body .= "<i>Your</i> personal photograph to this message. 
"; 
$body .= "Sincerely, 
"; 
$body .= "phpmailer test message "; 
$body .= "</div>" ; 

// And the absolute required configurations for sending HTML with attachement 

$mail->AddAddress("[email protected]", "My-webpage Website"); 
$mail->Subject = "test for phpmailer-3"; 
$mail->MsgHTML($body); 
$mail->AddAttachment("phpmailer.gif"); 
if(!$mail->Send()) { 
echo "There was an error sending the message"; 
exit; 
} 
echo "Message was sent successfully"; 
+0

これは廃止された例に基づいており、重要な部分を欠いています。 – Synchro

+0

@シンクロこれは私とこの例で試してみるのです。あなたはテストしましたか? – madankundu

+1

私が言ったことはまだあります - 元のコードを書いたからです。また、この質問に答えることもできません。 – Synchro

関連する問題