2014-01-14 58 views
1

我想通過PHP發送電子郵件,其中正文取決於幾個if語句。通過PHP使用IF條件發送電子郵件

我知道你不能在mail()函數中調用if語句,所以我想知道的是,如果可以在多個變量中聲明正文項並將它們調用到mail()身體。

我到目前爲止的內容是在下面,但是我相信你可以猜到,它不起作用,真的會很感激一些反饋。

if (!empty($phone)) {$email_phone = echo 'Phone Number: ' $phone \r\n}; 
     mail('[email protected]', 'New Visitor Information', "Hello Pastor,\r\n\r\nWe had a new visitor on " . $visit_date . "\r\n\r\nTheir Details:\r\n\r\nName: " . $first_name . " " . $last_name . "\r\n" . $email_phone . " "); 
+0

{$ email_phone = echo'電話號碼:'$ phone \ r \ n}; - 這塊看起來很奇怪。檢查這是你想寫的。 – user1853181

+0

澄清需要什麼(出現我沒有做好這件事) 我需要的電子郵件只包括某些行,如果它的數據提交了一個for,即我不想要電話號碼:顯示是否變量$ phone是空的。我已經創建了電子郵件應發送的條件,但其內容也符合上述說明 – Railto

回答

2

試試這個

<?php 
    if (!empty($phone)) {$email_phone = "Phone Number: ".$phone; }; 
      mail('[email protected]', 'New Visitor Information', "Hello Pastor Steve,\r\n\r\nWe had a new visitor on " . $visit_date . "\r\n\r\nTheir Details:\r\n\r\nName: " . $first_name . " " . $last_name . "\r\n" . $email_phone . " "); 

      ?> 
+0

此條款以及Grant對此做出的輕微修改。 謝謝大家,總是可以依靠SO讓我走上正軌。 – Railto

+0

請提出您使用過的評論或回覆,以便我們可以從我們的貢獻中受益? – Grant

+0

我不能沒有足夠的積分,其他明智的我會。 – Railto

1

先建體,然後把它:

$body = 'Hello, world'; 
if ($some_condition) { 
    $body .= " blah blah blah"; 
} 
if ($other_condition) { 
    $body .= "blah blah blah"; 
} 
mail(....); 
2
if (!empty($phone)){ 

    $email_phone = "Phone Number: " . $phone . "\r\n"; 
    $email = "[email protected]"; 
    $subject = "New Visitor Information"; 
    $body = "Hello Pastor,\r\n\r\nWe had a new visitor on " . $visit_date . "\r\n\r\nTheir Details:\r\n\r\nName: " . $first_name . " " . $last_name . "\r\n" . $email_phone . "; 

    mail($email, $subject, $body) 

}; 

這樣的郵件只有在有一個電話號碼值被髮送。

1

我做八方通這樣的:

$mailTo = "[email protected]"; 
$subject = "New Visitor Information"; 

$message=array(); 
$message[] = "Hello Pastor Steve,"; 
$message[] = ""; 
$message[] = "We had a new visitor on " . $visit_date; 
$message[] = ""; 
$message[] = "Their Details:"; 
$message[] = ""; 
$message[] = "Name: " . $first_name . " " . $last_name; 
$message[] = ""; 

if (!empty($phone)) { 
    $message[] = "Phone Number: " . $phone; 
} 

$message = implode("\r\n", $message); 

mail($mailTo, $subject, $message); 

我使用一個數組來concatinate一些字符串。這比使用點運算符來協調字符串要快得多。所以它的格式更清晰,所以你可以更清楚地發現空行。現在你可以看到如何使用if子句和變量correcty。

+0

根據OP問題,這是正確的答案。 – user1853181

+0

這種方式可以工作,但不幸的是,這個腳本必須發送3個不同的電子郵件,並使用這可能會導致大量的重複,這是不必要的,我選擇的答案是最適合我的需要(是的,我明白,我沒有在問題中提到,但只是澄清) – Railto