2012-03-04 9 views
1

私はこのhtml電子メールを送信しようとしていますが、何らかの理由で本文にリンクがあると送信しません。これら2つのファイルの唯一の違いは、本体にリンクが1つあることにあります。私が同じことを被験者に置くと、それはうまくいく。本文に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

あなたの電子メールアドレスに引用符をエスケープする必要があります。

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

CRUD、バックスラッシュがで貼り付けられませんでした理由を私は知らないが、彼らはしていますコード。これはコード内のバックスラッシュでも実行されます。私は上記の例に戻しましたが、それが遅すぎることを恐れ、誰もがそれが一般的なエスケープされたバックスラッシュの問題だと思うでしょう。そうではありません。ダング、なぜそれらを貼り付けなかったのですか? –

+0

メールアドレス???代わりに "url"と言うことを意味しましたか? – jmort253

2

$ mail_bodyのhrefがエスケープされていない二重引用符を持っているようです。あなたは試してみました:

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

をバックスラッシュに注意してください。

+0

コンテンツタイプヘッダーと同じです。 – ccKep

+0

上記の例にバックスラッシュを追加しました。彼らはもともとコードにありましたが、何らかの理由でここには貼り付けませんでした。しかし、ええ、それは彼らが引用符がエスケープされたときに発生します。 –

+0

OK、修正を見ました。ちょうど明確にするには、スクリプトが死んでいるか、電子メールが表示されない/リンクが機能していないのでしょうか? – Cameron

0

$ mail_bodyタグに4つの引用符( ")があります - 最初の2つの引用符の間に情報を割り当てようとすると、末尾にセミコロン(;)や演算子(。 。それはこれらのものを見ていないときに何をするかわからないそれはまた第二ヘッダー内の問題でなければなりません($header= $header . "Content-Type: text/html; charset="iso-88598-1"\n";

これを実行する最も簡単な方法は次のとおりです。次

変更:

から:

012これに$header = $header . "Content-Type: text/html; charset="iso-8859-1"\n"; :THIS FROM

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

:THIS TO

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

関連する問題