2012-08-16 41 views
1

我正在用phpmailer發送附件的電子郵件。從未收到附件的PHPMailer

include_once('/home/site/PHPMailer/class.phpmailer.php'); 

$mail    = new PHPMailer(); 
$body    = $mail->getFile('contents.html'); 
$body    = eregi_replace("[\]",'',$body); 
$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "smtp.free.fr"; // SMTP server 
$mail->IsSendmail(); // telling the class to use SendMail transport 

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

$mail->Subject = "subject"; 

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 

$mail->MsgHTML($body); 

$mail->AddAddress("[email protected]", "name"); 

$mail->AddAttachment("mylist.csv");    // attachment 

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

我收到「發送的消息!」在執行,但沒有收到電子郵件。

+0

查看您的系統日誌或/ var/mail /用戶名,以查看是否收到任何錯誤或反彈。 – 2012-08-16 13:54:55

+0

我不確定你想要在設置中完成什麼。您首先指定使用SMTP,然後切換到Sendmail。你想使用哪種運輸工具? – 2012-08-16 13:54:59

+1

檢查您的垃圾郵件文件夾。如果標題設置不正確,電子郵件服務器有將自動電子郵件解釋爲垃圾郵件的習慣。 – Matt 2012-08-16 13:57:09

回答

0

由於許多郵件提供商(如AOL和Yahoo)阻止了大量與電子郵件垃圾郵件相關的IP地址,您發送電子郵件的用戶很可能沒有收到郵件。因此,如果您正在運行此PHP腳本的服務器位於其黑名單中,則用戶甚至不會將其收到垃圾郵件文件夾中。

檢查你的php電子郵件日誌。

http://help.yahoo.com/l/us/yahoo/smallbusiness/webhosting/php/php-03.html

而且,如果不是這種情況,請嘗試確保你的努力包括文件是否存在,以及要傳遞正確的文件路徑。就像@Waygood說的,試着看看它是否沒有附件發送。

+0

我沒有在syslog中看到錯誤,我嘗試在ftp上發送郵件。 – Algodrill 2012-08-16 14:12:42

+0

我嘗試發送沒有附件,但沒有。對於我的測試,我使用mymail在laposte.net – Algodrill 2012-08-16 14:19:13

+0

沒關係,因爲我把腳本放在另一臺服務器上。我們如何在我的服務器上啓用發送電子郵件? – Algodrill 2012-08-16 18:10:42