2014-01-17 83 views
1

我想要在電子郵件正文中使用foreach包含結果。當我添加foreach語句時,PHP Mailer似乎只是切斷了消息。關於如何在郵件正文中包含多個結果的任何想法?PHP郵件程序 - 郵件正文中的foreach

$mail->Body = '*** Automated email - do not reply ***<br><br>Hello '.$Name.', <br><br>We were able to connect you with the following services. <br><br> '; 
foreach($findResult['data'] as $key=>$findData){ 
if($findData['CompanyEmail'][0] != NULL || $findData['CompanyPhone'][0] != NULL) { 
    echo $findData['CompanyName'][0]; 
    echo $findData['CompanyContact'][0]; 
    echo $findData['CompanyPhone'][0]; 
    echo $findData['ContactEmail'][0]; 
    }?><br><?php } 
$body .='<br><br>Thank you for using our directory.<br><br><br>Regards,<br><br>Sender'; 

P.S.如果我拿出';'在foreach之前,我得到一個錯誤。

+0

你有'$ mail-> Body'和'$ body',這是完全不相關的......而在'foreach'中,你只是輸出了東西。如果你希望所有東西都放在郵件正文中,那就把它放在那裏,而不是放在整個地方。 –

+3

@TillHelge是不是爲什麼人們來這裏?學習? – Styphon

+0

@Styphon這個頁面不適合教授要領。從這個問題很容易看出,即使是最基本的調試技術(回聲/記錄變量)對於OP來說都是未知的,並且他將永遠不會從SO中學習它們,因爲他所得到的只是工作代碼片段,而他真的會需要對問題的具體解釋以及如何自行檢測問題。 –

回答

7

代替使用echo,您需要使用$mail->Body .=來繼續字符串。就像這樣:

$mail->Body = '*** Automated email - do not reply ***<br><br>Hello '.$Name.', <br><br>We were able to connect you with the following services. <br><br> '; 
foreach($findResult['data'] as $key=>$findData){ 
    if($findData['CompanyEmail'][0] != NULL || $findData['CompanyPhone'][0] != NULL) { 
     $mail->Body .= $findData['CompanyName'][0]; 
     $mail->Body .= $findData['CompanyContact'][0]; 
     $mail->Body .= $findData['CompanyPhone'][0]; 
     $mail->Body .= $findData['ContactEmail'][0]; 
    } 
} 
$body .='<br><br>Thank you for using our directory.<br><br><br>Regards,<br><br>Sender'; 

如果像我懷疑,$body也應該是電子郵件的一部分,那麼它改成$mail->Body .=爲好。

+0

謝謝你的幫助,Styphon。對此,我真的非常感激。它的工作原理,我可以看到它爲什麼不早。 :) – user2551881

+0

@ user2551881很高興幫助你從中學到了東西。 – Styphon

+0

非常感謝。 – CharlotteOswald