0

PHP の mail() 関数を使用して、メールと共にスタイル情報を送信しようとしています。残念ながら、私のメール クライアントはスタイル付きのメールを受け入れるように設定されていますが、プレーンな html テキストとして表示されます。

$to = $email;
    $subject = "Subject Details";
    $message='<html><body><table width="600" height="840" border="0" cellpadding="5" cellspacing="5">';
    $message.='<tr><td height="110"><img src="https://user.co.uk/images/logo.jpg" alt="SignDox" width="300" height="100" /></td></tr>';
    $message.='<tr><td height="29" bgcolor="#5C1561">&nbsp;</td></tr>';
    $message.='<tr><td height="537" valign="top">';
    $message.="Message Goes Here\n\n";
    $message.="Username: ".$new_agent_id."\n";
    $message.="Password: ".$pass1."\n\n";
    $message.="To sign in to your user panel follow this link: \n";
    $message.="Inside your admin section you will be able to change your username and password.\n";
    $message.='</td></tr>';
    $message.='<tr><td height="140" bgcolor="#5C1561">&nbsp;</td></tr></table></body></html>';
    $from = "no-reply@sender.co.uk";
    $headers = "From:" . $from;
    mail($to,$subject,$message,$headers);
4

6 に答える 6

4

HTML メールを送信するには、Content-type ヘッダーを設定する必要があります

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

ノート:

1) HTML などの複雑なメールを送信する場合は、PEAR パッケージ » PEAR::Mail_Mime を使用することをお勧めします。

2) mail() 関数は、ループ内の大量の電子メールには適していないことに注意してください。この関数は、電子メールごとに SMTP ソケットを開いたり閉じたりするため、あまり効率的ではありません。

これをもっと読んでください:PHPマニュアル

于 2012-11-20T08:39:38.880 に答える
1
function send_mail($from,$fromName,$to,$object,$bodyText,$bodyHtml){
    $site = "mywebsite.ca";
    $from = $fromName." <".$from.">";
    $limite = "_----------=_parties_".md5(uniqid (rand()));

    $header  = "Reply-to: ".$from."\n";
    $header .= "From: ".$from."\n";
    $header .= "X-Sender: <".$site.">\n";
    $header .= "X-Mailer: PHP\n";
    $header .= "X-auth-smtp-user: ".$from." \n";    
    $header .= "X-abuse-contact: ".$from." \n"; 
    $header .= "Date: ".date("D, j M Y G:i:s O")."\n";
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: multipart/alternative; boundary=\"".$limite."\"";

    $message = "";
    $message .= "--".$limite."\n";
    $message .= "Content-Type: text/plain\n";
    $message .= "charset=\"iso-8859-1\"\n";
    $message .= "Content-Transfer-Encoding: 8bit\n\n";
    $message .= $bodyText;

    $message .= "\n\n--".$limite."\n";
    $message .= "Content-Type: text/html; ";
    $message .= "charset=\"iso-8859-1\"; ";
    $message .= "Content-Transfer-Encoding: 8bit;\n\n";
    $message .= $bodyHtml;

    $message .= "\n--".$limite."--";
    if(mail($to,$object,$message,$header)){
      //echo all
    }
    else{
      //echo mssage not submit
    }
}

この関数がお役に立てば幸いです。この関数をsend_mailとして使用してみてください。次に、メッセージが送信されたかどうかを確認するための条件を記述してみてください。入力を入力するだけで済みます。

于 2012-11-20T08:48:25.333 に答える
1

のようなものを試してください

<?php
$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From:" . $from;
/*
$headers[] = "Bcc: JJ Chong <bcc@domain2.com>";
$headers[] = "Subject: {$subject}";  */ optional

mail($to, $subject, $message, implode("\r\n", $headers));
于 2012-11-20T08:44:20.943 に答える
1

HTML 形式の電子メールを送信するには、正しいヘッダーを定義する必要があります。これは、次を使用して非常に簡単に実行できます。

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

ただし、PHPMailerクラスを使用することをお勧めします。このクラスは、すべてのヘッダーと必要なその他すべてを処理します。添付ファイルの追加、画像の埋め込み、SMTP 経由の送信などを簡単に行うことができます。

これは素晴らしいクラスであり、特に PHP の初心者であれば、オブジェクトとクラスについて学ぶ量は言うまでもありません :-)

PHPMailerクラスはこちら

于 2012-11-20T08:44:37.403 に答える
1

必要に応じてコンテンツ タイプと文字セットを設定します。また、 from ヘッダーを で終了する必要があります\r\n

$headers = "From:" . $from . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
于 2012-11-20T08:40:17.307 に答える
0
//your header should be like this
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
于 2012-11-20T09:09:15.470 に答える