2012-03-04 61 views
1

我試圖發送這個html郵件,並且由於某種原因,當主體中存在鏈接時它不會發送。這兩個文件之間的唯一區別似乎是它在主體中有一個鏈接。如果我把相同的東西放在主題中,它會發送正常。當主體中有一個URL時,PHP郵件將不會發送

完美的作品:

//mail body and subject 
$mail_body = "Test Email with no link."; 
$subject = "Test email with no link"; 

//recipient 
$recipient = "[email protected]"; 

//headers to send HTML email 
$header = "MIME-Version: 1.0\n" ; 
$header = $header . "Content-Type: text/html; charset="\iso-8859-1\"\n"; 
$header = $header . 'From: [email protected]'; 

//send the message 
mail($recipient, $subject, $mail_body, $header) or die('mail could not be sent'); //mail command :) 
echo('Good Test'); 

不起作用:

//mail body and subject 
$mail_body = "Test Email with link. <a href=\"http://www.google.com\">google</a>"; 
$subject = "Test email with with link. "; 

//recipient 
$recipient = "[email protected]"; 

//headers to send HTML email 
$header = "MIME-Version: 1.0\n" ; 
$header = $header . "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
$header = $header . 'From: [email protected]'; 

//send the message 
mail($recipient, $subject, $mail_body, $header) or die('mail could not be sent'); //mail command :) 
echo('Bad Test'); 

回答

3

你需要逃避你的e-mail地址的報價。檢查反斜槓:

$mail_body = "Test Email with link. <a href=\"http://www.google.com\">google</a>"; 
+0

界面污物,我不知道爲什麼反斜槓沒貼了,但他們都在碼。它仍然在代碼中使用反斜槓。我把它們放回上面的例子中,但我擔心這太遲了,現在每個人都會認爲這是常見的反斜槓問題。不是。當它,爲什麼它沒有粘貼。 – 2012-03-04 06:53:37

+0

電子郵件地址???你的意思是說「url」嗎? – jmort253 2013-03-04 17:02:05

2

它看起來像$ mail_body中的href有一個未轉義的雙引號。您是否嘗試過:

$mail_body = "Test Email with link. <a href=\"http://www.google.com\">google</a>";

注意反斜線。

+0

內容類型標題也一樣。 – ccKep 2012-03-04 06:41:15

+0

我在上面的例子中添加了反斜槓。他們最初是在代碼中,但由於某種原因沒有粘貼在這裏。但是,當它們引號逃脫時會發生。 – 2012-03-04 06:54:17

+0

好的,看到了修復程序。只是要清楚,是腳本死亡還是電子郵件沒有顯示/鏈接不工作? – Cameron 2012-03-04 07:18:07

0

您在$ mail_body標記中有4個引號(「) - 它試圖僅在前兩個引號之間分配信息,然後在末尾或附加運​​算符(。)之前預期類似分號(;)的內容, 。當它不看到這些模式之一,它不知道該怎麼做還應該在第二頭一個問題($header= $header . "Content-Type: text/html; charset="iso-88598-1"\n";

做到這一點,最簡單的方法是:

更改如下:

From this:

$mail_body = "Test Email with link. <a href="http://www.google.com">google</a>";

這樣:

$mail_body = "Test Email with link. <a href=\"http://www.google.com\">google</a>";

從本:$header = $header . "Content-Type: text/html; charset="iso-8859-1"\n"; 這樣:$header = $header . "Content-Type: text/html; charset=\"iso-8859-1\"\n";