2012-06-16 3 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

전체 $ 본문을 큰 따옴표로 묶어 계속 사용할 필요가 없습니다. –

답변

3

당신은 잘못을 사용하고 있습니다 :

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

mail() 함수는 $from 매개 변수가 없습니다. 당신은 $headers에도 던져 넣어야합니다.

+0

아, 좋은 눈 ... –

+0

코드를 업데이트하고 @Michael은 http : // 완전히 잊었습니다. 고맙습니다! :) –

관련 문제