2015-06-04 114 views
4

我想發送一封郵件與PHPMailer。我用這個代碼,但我得到這個錯誤:PHPMailer無效的地址

無效地址:[email protected]

(。我用假地址的StackOverflow我用我的實際代碼中的真實地址)

<?php 

    $from = "My Name"; 
    $mail = "[email protected]"; 

    require_once('./class.phpmailer.php'); 

    $bodytext = " 
    <html> 
    <head> 
    <title>title</title> 
    </head> 
    <body> 
    <h1 style='text-align:center'>Some text</h1> 
    <p>more text. Here's a name : $from</p> 
    </body> 
    </html> 
    "; 
    try { 
     $email = new PHPMailer(true); 
     $email->From  = '[email protected]'; 
     $email->FromName = 'WebMaster'; 
     $email->isHTML(true); 
     $email->Subject = 'subject'; 
     $email->Body  = $bodytext; 
     $email->addAddress($mail, "Name"); 
     $email->AddReplyTo($mail,"Name"); 

     // $file_to_attach = $filePath; 

     // $email->AddAttachment($file_to_attach , 'constat.pdf'); 

     $email->Send(); 
     } catch (Exception $e) { 
     echo $e->getMessage(); 
    } 
    // var_dump($email); 
?> 

SICE已經有一個運行SMTP服務器,我沒有配置它,和PHP函數mail工作。

我該如何解決這個錯誤?

+0

檢查'addAddress'的返回值,並查看郵件服務器日誌。 – Synchro

+0

我已經做了。它返回了'false',並且由於我在沒有嘗試發送郵件(我刪除了該行)的情況下得到錯誤,我不認爲日誌中有任何內容。 – Seblor

+0

那麼這就是你的答案 - 你給它一個無效的地址。 – Synchro

回答

2

好吧。實際上,當選擇的模式是pcre8時,正則表達式會檢查郵件地址是否有效。我將它改爲

/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i 

現在它正在工作。

謝謝@Synchro。