PHP mail()具体问题

时间:2011-05-12 19:37:04

标签: php html email

所以,我想使用mail()为我的网站发送注册电子邮件,但是我想让它看起来不错,同时在必要时回到好的旧明文;混合信息电子邮件。

但是我希望它从John Doe发送,他的电子邮件是johndoe@example.com到recipient@example.com。

HTML代码应为<html><head><title>HTML email!</title></head><body><p>This is HTML!</p></body</html>,明文消息应为This is plaintext.

mail()要完成此任务的论据是什么?我知道其中有很多涉及以某种疯狂的方式更改标题。

非常感谢!

2 个答案:

答案 0 :(得分:2)

使用类似SwiftMailer之类的内容,因为它具有防止标头注入等优点。考虑到这一点,是的,您必须设置自定义标题并使用多部分正文来实现您的目标:

/***************************************************************
 Creating Email: Headers, BODY
 1- HTML Email WIthout Attachment!! <<-------- H T M L ---------
 ***************************************************************/
#---->Headers Part
$Headers     =<<<AKAM
From: $FromName <$FromEmail>
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="$boundary1"
AKAM;

#---->BODY Part
$Body        =<<<AKAM
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="$boundary1"

This is a multi-part message in MIME format.

--$boundary1
Content-Type: text/plain;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$TextMessage
--$boundary1
Content-Type: text/html;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$HTMLMessage

--$boundary1--
AKAM;

来源:http://www.php.net/manual/en/function.mail.php#83491

这是很多工作。再次,这就是为什么我建议有一个可以为你处理所有这些的库,以及其他功能。

答案 1 :(得分:1)

一切都在这里(例#4):http://php.net/manual/en/function.mail.php