1

こんにちは天才の人々.... 私はphpを使用してhtmlメールを送信しようとしています.phpスクリプトのすべてが正しいように見えますが、メールを送信するとプレーンテキストしか受信しません. これは、スクリプトhttp://www.mailme.netne.netをテストするために使用しているリンク URL です。ここで確認できます。

スクリプト内のコードは次のとおりです。

<?php 
require 'ErrorHandler.inc.php';  
//.....set up a boundary to seperate the message..........  
$boundary = '======'.md5(mt_rand(4,time())).'======';  
$headers=array();  
$headers[]='MIME-Version:1.0';  
$headers[]='Content-type:multipart/alternative;boundary="'.$boundary.'"'; 
$headers[]='From: '.$_POST['from'];  
$msg_body = 'This a is Multipart Message in MIME Format'."\n";  
$msg_body .= '--'.$boundary."\n";  
$msg_body .= 'Content-Type:text/html; charset="iso-8859-1"'."\n"; 
$msg_body .= 'Content-Transfer-Encoding:7bit'."\n\n";  
$msg_body .=$_POST['message'] ."\n"; 
$msg_body .= '--'.$boundary."\n"; 
$msg_body .= 'Content-Type:text/plain; charset="iso-8859-1"'."\n";
$msg_body .= 'Content-Transfer-Encoding:7bit'."\n\n";  
$msg_body .=strip_tags($_POST['message']) . "\n";  
$msg_body .= '--'.$boundary.'--'."\n";  
//======================send n test return value=======================
$success  = mail($_POST['to'],$_POST['sub'],$msg_body,implode("\r\n",$headers)) ;
if($success)  
{ echo "<strong>Your mail sent </strong>";}    
else     
{echo "<strong>Error Sending your mail..please try again later</strong>";}  
echo " with following details:<br /><br />";  
echo "<strong>From : </strong><em>" .$_POST['from']."<br />";  
echo "<strong>To&nbsp;&nbsp;: </strong><em>".$_POST['to'].  "<br/>";  
echo "<strong>Subject : </strong><em>".$_POST['sub']."<br />";  
echo "<strong>Message : </strong><em>".$msg_body."<br />";  
 ?>      

私を助けてください..私は過去6日間から試しています..

4

1 に答える 1

1

メッセージ本文にヘッダー データを追加しています。

$msg_body .= 'Content-Type:text/html; charset="iso-8859-1"'."\n"; 
$msg_body .= 'Content-Transfer-Encoding:7bit'."\n\n"; 

しかし、実際には次のようにヘッダーに追加していません。

$headers[] = 'Content-Type:text/html; charset="iso-8859-1"';
$headers[] = 'Content-Transfer-Encoding:7bit';

これを試して:

<?php 
require 'ErrorHandler.inc.php'; 

//.....set up a boundary to seperate the message..........  
$boundary = '======'.md5(mt_rand(4,time())).'======';  

$headers    =   array();  
$headers[]  =   'MIME-Version:1.0';  
$headers[]  =   'Content-type:multipart/alternative;boundary="'.$boundary.'"'; 
$headers[]  =   'From: '.$_POST['from']; 
$headers[]  =   'Content-Type:text/html; charset="iso-8859-1"';
$headers[]  =   'Content-Transfer-Encoding:7bit';

$msg_body = 'This a is Multipart Message in MIME Format'."\n";  
$msg_body .= '--'.$boundary."\n";  
$msg_body .= 'Content-Type:text/html; charset="iso-8859-1"'."\n"; 
$msg_body .= 'Content-Transfer-Encoding:7bit'."\n\n";  
$msg_body .=$_POST['message'] ."\n"; 
$msg_body .= '--'.$boundary."\n"; 
$msg_body .= 'Content-Type:text/plain; charset="iso-8859-1"'."\n";
$msg_body .= 'Content-Transfer-Encoding:7bit'."\n\n";  
$msg_body .=strip_tags($_POST['message']) . "\n";  
$msg_body .= '--'.$boundary.'--'."\n";  


//======================send n test return value=======================
$success  = mail($_POST['to'],$_POST['sub'],$msg_body,implode("\r\n",$headers)) ;
if($success){ 
    echo "<strong>Your mail sent </strong>";
}    
else     
{
    echo "<strong>Error Sending your mail..please try again later</strong>";    
}  

echo " with following details:<br /><br />";  
echo "<strong>From : </strong><em>" .$_POST['from']."<br />";  
echo "<strong>To&nbsp;&nbsp;: </strong><em>".$_POST['to'].  "<br/>";  
echo "<strong>Subject : </strong><em>".$_POST['sub']."<br />";  
echo "<strong>Message : </strong><em>".$msg_body."<br />";
?> 
于 2012-09-06T16:32:45.403 に答える