2010-10-04 30 views
0

我有這樣的功能:PHP函數發送某些郵件,不是別人

function sendEmail ($to, $id, $from='n', $link='n') { 

    //retrieve message from system 
    $where = "id = '".$id."'"; 
    $resource = dbSelect (TMAIL, $where); 

    if ($resource[0] !== 1) { 
     return "Error sending email"; 
    } 

    $subject = $resource[1]['subject']; 
    $body = $resource[1]['body']; 

    //create and send email 
    if ($link !== "n") { 
     $body = $body.' <a href="'.$link.'">'.$link.'</a>'; 
    } 
    if ($from == 'n') { 
     $from = ADMIN; 
    } 

    mail ($to, $subject, $body, $from); 

    //deubug 
//print_r($resource); 
    //echo $from; 
    //echo $to; 
    //echo $subject; 
    //echo $body; 
    //echo $link; 
} 

被稱爲像這樣:

//send instructions 
     $f_error['failure'] = sendEmail ($email, "1", ADMIN, $link); 
     $f_error['failure'] = sendEmail (ADMIN, "2"); 

在上述情況下,以sendEmail第一次調用似乎沒有做任何東西和第二次被髮送兩次。我已經檢查了發送給函數和代碼本身的變量/常量,並且沒有發現可以解釋這種行爲。

任何人都可以提出什麼可以防止這個工作?

+0

爲什麼您的郵件功能需要一個ID? – Jordy 2010-10-04 12:54:41

+0

什麼是ADMIN?是定義變量? – 2010-10-04 12:56:07

+0

@Jordy id從CMS郵件管理器中獲取郵件。 @Haim ADMIN是一個設置管理員電子郵件地址的常量。 – YsoL8 2010-10-04 13:00:43

回答

0

幾件事情:

  • 如果ID是一個數字,不要把它放在引號

  • 「ADMIN」不是一個有效的電子郵件地址(除非您是在本地提供)

  • 看看http://uk3.php.net/manual/en/function.mail.php - 您設置'from'標題的方式看起來不正確。

+0

引號不重要。每個我能想到的數據庫都允許引用數字,而一些奇怪的數據庫甚至可能會*要求它。 – cHao 2010-10-04 13:19:32

+0

ADMIN是一個常量。這可能是一個有效的電子郵件地址,如果這就是它的設置。 – cHao 2010-10-04 13:21:00

0

發現問題 - 第一封郵件進入我的垃圾郵件,第二封郵件沒有進入我的垃圾郵件。我假設兩者都會在同一個文件夾中結束。