2016-01-03 3 views
0

Я использую PHPMail для отправки электронной почты с вложением в формате pdf. В большинстве случаев (около 90% от времени) электронная почта получает отправить правильно, но в некоторых случаях, и я не знаю, в каких случаях, электронная почта будет отображаться как это:Непрочитанное письмо, отправленное с помощью PHPmailer

: 
MIME-Version: 1.0 
Content-Type: multipart/mixed; 
    boundary="b1_a3f9faae87f56d6f3d5b7325ee3fadf5" 


--b1_a3f9faae87f56d6f3d5b7325ee3fadf5 
Content-Type: multipart/alternative; 
    boundary="b2_a3f9faae87f56d6f3d5b7325ee3fadf5" 

--b2_a3f9faae87f56d6f3d5b7325ee3fadf5 
Content-Type: text/plain; charset = "iso-8859-1" 
Content-Transfer-Encoding: 8bit 


Schakel HTML in om dit bericht goed te kunnen lezen 




--b2_a3f9faae87f56d6f3d5b7325ee3fadf5 
Content-Type: text/html; charset = "iso-8859-1" 
Content-Transfer-Encoding: 8bit 





    <br><br> 
       <table cellpadding='0'> 
        <tr> 
         <td>&nbsp;</td> 
         <td width='130'><img src='http://www.emdr-lightbar.nl/images/psytec_mail.png' width='108' height='42' alt='Psytec'/></td> 
         <td><b>FACTUUR</b></td> 
        </tr> 
        <tr> 
         <td style='border-top: 0px;border-bottom: 0px;'>&nbsp;</td> 
         <td style='border-bottom: 1px solid #ededed !important;' colspan='2'></td> 
        </tr> 
        <tr> 
         <td width='20'>&nbsp;</td> 
         <td colspan='2'><font face='Arial, Helvetica, sans-serif' size='2'> 
          <br><br> 
          Geachte mevrouw,<br><br> 
          Uw betaling is in goede orde ontvangen. Dank u wel. Uw factuur vindt u in de bijlage van deze email. 
          <br><br> 
          Heeft u nog vragen? Neemt u dan contact op via de klantenservice</a>. 
          <br><br> 
          Uw ordernummer: 151<br><br> 
          Met vriendelijke groet,<br> 
          Fred Verschuur 
          <br><br><br> 
          </font> 
         </td> 
        <tr> 
         <td style='border-top: 0px;border-bottom: 0px;'>&nbsp;</td> 
         <td style='border-bottom: 1px solid #ededed !important; 
     color: #757575;' colspan='2'></td> 
        </tr> 
       </table> 
       <br><br><br><br><br><br> 




--b2_a3f9faae87f56d6f3d5b7325ee3fadf5-- 
--b1_a3f9faae87f56d6f3d5b7325ee3fadf5 
Content-Type: application/pdf; name="FA2015161.pdf" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="FA2015161.pdf" 

JVBERi0xLjQKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAy 
IDAgUgovQW5ub3RzIFs8PC9UeXBlIC9Bbm5vdCAvU3VidHlwZSAvTGluayAvUmVjdCBbMjkwLjcz 
IDI0MS44OSA0MDQuMjUgMjMxLjg5XSAvQm9yZGVyIFswIDAgMF0gL0EgPDwvUyAvVVJJIC9VUkkg 
KG1haWx0bzprbGFudGVuc2VydmljZUBwc3l0ZWMubmwpPj4+Pl0KL0dyb3VwIDw8L1R5cGUgL0dy 
b3VwIC9TIC9UcmFuc3BhcmVuY3kgL0NTIC9EZXZpY2VSR0I+PgovQ29udGVudHMgNCAwIFI+Pgpl 

Я использовал этот код:

<?PHP 

function mailTo($to, $subject, $fromname, $message, $headers, $attachment, $attname) { 
    global $mailer_user, $mailer_pass; 
    require_once('class.phpmailer.php'); 
    $mail  = new PHPMailer(); 

    $body   = preg_replace('/\[\]/',"",$message); 

    $mail->IsSMTP(); 
    $mail->Host    = "smpt.server.nl"; 

    $mail->SMTPAuth  = true; 
    $mail->Host    = "smpt.server.nl"; 
    $mail->Port    = 26; 
    $mail->Username  = "username"; 
    $mail->Password  = "password"; 

    $mail->IsHTML(true); 
    $mail->AltBody = "Schakel HTML in om dit bericht goed te kunnen lezen"; 

    $mail->AddReplyTo('[email protected]', 'Name'); 
    $mail->SetFrom('[email protected]', 'Name'); 
    $mail->FromName  = $fromname; 
    $mail->AddBCC('[email protected]'); 

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

    $mail->addCustomHeader($headers); 

    $address = $to; 
    $mail->AddAddress($address, $address); 

    if ($attachment) $mail->AddStringAttachment($attachment, $attname, $encoding = 'base64', $type = 'application/pdf'); 

    if(!$mail->Send()) { 
     return false; 
    } else { 
     return true; 
    } 
} 


?> 

Как это исправить?

+0

Chk yur html open close теги. – devpro

+0

Вы используете довольно старую версию PHPMailer. [Обновить] (https://github.com/PHPMailer/PHPMailer). – Synchro

ответ

-1

Использование isHTML() после кузова. Его работа для меня в прошлом.

$mail->Body = $body; 
$mail->IsHTML(true); 
+0

@fredv mate сделал у попробовать? – devpro

+0

Я пробовал, он работал, но в 90% случаев он уже работал, поэтому я продолжу тестирование :-) – FredV

+0

Этот код не имеет значения. – Synchro

0

Должна быть какая-то проблема внутри почтовых заголовков.

$mail->addCustomHeader($headers); 

Что находится внутри $headers?

А что, если вы удалите эту линию, чтобы проверить?

Update:

Ваши заголовки почти наверняка сломаны где-то. Например, показанная электронная почта (тело) начинается с одного : на всей строке. Итак, где-то перед этим возникает проблема, вероятно, вызванная контентом $headers - или $headers пустая или неопределенная, как вы говорите. Остальные заголовки вставляются в тело почты, нарушая все форматирование MIME.

Так что я бы начал с удаления $mail->addCustomHeader($headers);, чтобы проверить, есть ли проблема в пределах $headers.

+0

Хмм, я вижу, $ headers не определен. Добавить некоторые параметры кодирования? – FredV

+0

@FredV - это параметр в вашей функции. Если не нужно, просто удалите строку '$ mail-> addCustomHeader ($ headers);'? –

+0

Спасибо! До сих пор это кажется фиксированным, но я продолжаю тестировать! – FredV

Смежные вопросы