2016-11-29 8 views
2

私はここで既に回答済みですが(thisthisthisなど)、何もうまくいきません...メールを送信するこの機能があります:mail()PHPはHTML形式で送信しません

function send_email($para, $assunto, $msg){ 
    $to  = $para; 
    $subject = $assunto; 

    $message = '<html><body>'; 
    $message .= str_replace("\\r\\n","<br/>",$msg); 
    $message .= '</body></html>'; 

    $headers = 'From: [email protected]' . "\r\n"; 
    $headers .= 'Reply-To: [email protected]' . "\r\n"; 
    $headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $headers .= 'MIME-Version: 1.0' . "\r\n"; 

    return mail($to, $subject, $message, $headers); 
} 

と私はそのようなことでこれを呼んでいる:私は電子メールを送信することができますが、それは、HTML形式のins't(と、それはhtmlタグが含まれている、HTML以外

$var = "<p><strong>...blablabla...</strong></p>"; 

send_email("[email protected]", "lalala", $var); 

およびBODY)。何が間違っているのですか?

EDIT 1: 電子メールが(まったく同じコンテンツがHTMLBODYタグを除いて、送信された)のように表示されます。

BEGIN 
<p><strong>...blablabla</strong></p> 
END 

私は(のようなthisチュートリアル)完全な電子メールを取得すると、電子メールがTAGSのHTML、ボディ、等... メールの切れ端で送信されたことまで示しています。これはとても正確である場合

Delivered-To: [email protected] 
... 
To: [email protected] 
Subject: aaaaaaaaaaaaaaaaaaaaa 
From: [email protected] 
Reply-To: [email protected] 
X-Mailer: PHP/5.6.19 
Content-type: text/html; charset=iso-8859-1 
MIME-Version: 1.0 
... 
Date: Tue, 29 Nov 2016 15:51:48 -0200 
... 
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report 
X-AntiAbuse: Primary Hostname - svr1.ravehost.com.br 
X-AntiAbuse: Original Domain - gmail.com 
X-AntiAbuse: Originator/Caller UID/GID - [99 497]/[47 12] 
X-AntiAbuse: Sender Address Domain - svr1.ravehost.com.br 

<html><body>...blablabla...</body></html> 
+0

最終的にヘッダーとすべての結果の電子メールメッセージをコピー/ペーストできますか? – Dragos

+0

edit1 @Dragosを参照してください。 – PMateus

+0

それ以外のヘッダーの順序が間違っていると、コードが正常に見えます。たぶんクライアント側に問題がありますが、どちらのメールクライアントを使用していますか? – Eric

答えて

-2

わかりません私はMicrosoft Outlookに持っていたhtml電子メールの問題を解決しました。

ヘッダーの\r\nをすべてPHP_EOLに置き換えてください。私はPHPでhtml電子メールを送信する際に問題が発生したときにこれを行いました。それは私の特定の問題を解決するように思えました。

+2

'PHP_EOL'は使用しているプラ​​ットフォームに応じて値が変更されます。 WindowsでPHPを実行すると、 '\ r \ n'が得られます。あなたがLinux上でそれを実行すると、 '\ n'が得られます。 – Brad

関連する問題