2012-06-16 126 views
0

我試圖在我的電子郵件中包含一個超鏈接,但它只是顯示爲純文本。我可能只是錯過了在$ BODY部分使用我的引號,而我只是沒有看到它。PHP電子郵件和超鏈接

echo "Activation Code: " . $emailString . " <br>"; 
mysql_query("INSERT INTO accounts 
(name, pass, email, activated, code) VALUES('$user', '$pass', '$email', 'false', '$emailString') ") 
or die(mysql_error()); 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$to = "$email"; 
$subject = "Hi!"; 
$body = '<html><head></head><body> Thank you for registering! Please go to this address to activate your account: <a href="'. $_SERVER['SERVER_NAME'] .'/PHP%20project/activate.php?activationCode='.$emailString.'">' .$emailString . '</a> </body></html>'; 
$from = "From:[email protected]"; 
if (mail($to, $subject, $body, $from, $headers)) { 
    echo("<p>Message successfully sent!</p>"); 
} else { 
    echo("<p>Message delivery failed...</p>"); 
} 
+0

'$ _SERVER ['SERVER_NAME']'不包含協議http://或https://,因此沒有協議的鏈接將不起作用。 。 –

+0

也許你應該使用http://www.php.net/manual/en/function.htmlspecialchars.php編碼'href'屬性來保證安全。也許你應該在'From:'之後插入一個空格。 – biziclop

+0

您也可以將整個$ body放入雙引號中,這樣您就不必前後走動。 –

回答

3

你使用它錯了:

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

mail()功能不具有$from參數。你也應該把它扔進$headers

+0

啊,好眼睛... –

+0

更新了代碼和@Michael它是http://我完全忘了。謝謝! :) –

相關問題