从PHP发送HTML电子邮件

我正在尝试从PHP发送一个简单的HTML电子邮件。以下代码只会导致GMail中的空白电子邮件。它还有一个名为'noname'的空附件,这根本不是我想要的; 虽然这可能仅仅是它不起作用的症状。


我使用的代码是:


<?php

//define the receiver of the email

$to = 'morrillkevin@gmail.com';

//define the subject of the email

$subject = 'Test HTML email';

//create a boundary string. It must be unique

//so we use the MD5 algorithm to generate a random hash

$random_hash = md5(date('r', time()));

//define the headers we want passed. Note that they are separated with \r\n

$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";

//add boundary string and mime type specification

$headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\"";

//define the body of the message.

ob_start(); //Turn on output buffering

?>

--PHP-alt-<?php echo $random_hash; ?> 

MIME-Version: 1.0

Content-Type: text/plain; charset="iso-8859-1"

Content-Transfer-Encoding: 7bit


Hello World!!! 

This is simple text email message. 


--PHP-alt-<?php echo $random_hash; ?> 

MIME-Version: 1.0

Content-Type: text/html; charset="iso-8859-1"

Content-Transfer-Encoding: 7bit


<h2>Hello World!</h2>

<p>This is something with <b>HTML</b>formatting.</p>


--PHP-alt-<?php echo $random_hash; ?>--

<?

//copy current buffer contents into $message variable and delete current output buffer

$message = ob_get_clean();

//send the email

$mail_sent = @mail( $to, $subject, $message, $headers );

//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 

echo $mail_sent ? "Mail sent" : "Mail failed";


慕妹3146593
浏览 640回答 3
3回答

30秒到达战场

如果可能,请使用PHPMailer类。它将大大简化您的工作。
打开App,查看更多内容
随时随地看视频慕课网APP