0

メールを送信しようとしていますが、現在正常に動作しています。しかし、この行を追加すると、メールは送信されなくなります。

$headers = "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail("anton@sci5.com", $subject, $message, $from, $headers )

基本的に、追加$headersすると機能しmail();ませんが、削除する$headerとメールが送信されますが、html がレンダリングされません。

私は何を間違っていますか?

これは私のコードです。

$subject = "E-newsletter Signup";

$message = "$todayis [EST] \n
            From: $firstname $lastname ($email)\n
            $firstname $lastname has subscribe for the ff. e-newsletters:\n
           " ;

if (!empty($ivpump1)) { $message .= "$ivpump1\n"; }
if (!empty($fetal1)) { $message .= "$fetal1\n"; }
if (!empty($biomed1)) { $message .= "$biomed1\n"; }

$message.= "<br /><br /><br />
            <p><b>From Webpage :</b> $fromWebpage </p>
            <p><b>From Google Keyword :</b> $refKeyword</p>
            <p><b>Referring Page :</b> $refPage</p>
            <p><b>From IP Address :</b> $endUserIP</p>";

$from = "From: $email\r\n";
$headers = "Content-Type: text/html; charset=ISO-8859-1\r\n";

mail("anton@gmail.com", $subject, $message, $from, $headers );
header("Location: http://www.site.com/thank-you-settings.html");
4

4 に答える 4

0
  1. メールの正しい署名機能。

    mail($to,$subject,$message, $headers)
    
  2. $header は次のようにする必要があります。

    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    
  3. PHP を使用した HTML メールの良い例: http://css-tricks.com/sending-nice-html-email-with-php/

  4. HTML レンダリングが機能しない場合、その理由は次のとおりです。

    残念ながら、多くの電子メール クライアントは、ヘッダー内の html または css ファイルを尊重しません。すべてがインラインである必要があります。この問題は、gmail と Outlook でも発生します。

于 2013-06-19T03:23:16.877 に答える
0

メール機能の署名を確認する必要がありますhttp://www.php.net/manual/en/function.mail.php

ですmail($to,$subject,$message, $headers)。あなたはそれを間違って呼んでいます。

$headersする必要があります:

$headers = "From: me@me.com\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
于 2013-06-19T03:09:24.220 に答える
0

「headers」と「from」は同じ変数の一部である必要があります。これを試してください。

<?php
$mime_boundary=md5(time());
$headers .= 'From: My Email <me@company.com>' . "\n";
$headers .= 'MIME-Version: 1.0'. "\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$mime_boundary."\"". "\n"; 

$msg .= "--".$mime_boundary. "\n";
$msg .= "Content-Type: text/plain; charset=iso-8859-1". "\n";
$msg .= "Content-Transfer-Encoding: 7bit". "\n\n";
$msg .= $textmessage . "\n\n";

$msg .= "--".$mime_boundary. "\n";
$msg .= "Content-Type: application/pdf; name=\"".$filename."\"". "\n";
$msg .= "Content-Transfer-Encoding: base64". "\n";
$msg .= "Content-Disposition: attachment; filename=\"".$filename."\"". "\n\n";
$msg .= chunk_split(base64_encode($doc)) . "\n\n";
$msg .= "--".$mime_boundary."--". "\n\n";

mail("anton@sci5.com", $subject, $msg ,$headers );

?>

PDF を送信する例では、画像やその他のファイルを送信できます。pdf の場合は"Content-Type: application/pdf のような権利を送信するだけです。

詳細: http://rob.sun3.org/archives/107

于 2013-06-19T03:12:56.927 に答える
0

メール関数を呼び出すときに、引用符のFrom: $from\r\n前にヘッダーを追加し、引数を削除してみてください。php.ini でデフォルトを設定するか、引数 (5 番目の引数) を使用しない限り、'from' 値を設定する場合、関数には 4 つの必須引数があり、その最後の引数は です。引数の要件を満たしているように見えますが、5 番目の引数を追加すると、関数を間違って使用しています。Content-Typefromfromadditional_parametersheadersfromheaders

于 2013-06-19T03:13:08.367 に答える