从原始身体发送邮件用于测试目的

hbi*_*bit 6 php email testing eml

我正在开发一个需要从电子邮件服务器检索任意电子邮件的PHP应用程序.然后,消息被完全解析并存储在数据库中.

当然,我必须做很多测试,因为这项任务对于阳光下所有不同的邮件格式来说并不是真的微不足道.因此,我开始"收集"来自某些客户并具有不同内容的电子邮件.

我想有一个脚本,以便我可以自动发送这些电子邮件到我的应用程序来测试邮件处理.

因此,我需要一种方法来发送原始电子邮件 - 这样结构与它们来自相应客户端的结构完全相同.我将电子邮件存储为.eml文件.

有人知道如何通过提供原始身体来发送电子邮件吗?

编辑: 更具体一点:我正在寻找一种使用源代码发送多部分电子邮件的方法.例如,我希望能够使用类似的东西(带有普通和HTML部分的电子邮件,HTML部分有一个内联附件).

 --Apple-Mail-159-396126150
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;

The plain text email!

--=20    

=20
=20

--Apple-Mail-159-396126150
Content-Type: multipart/related;
    type="text/html";
    boundary=Apple-Mail-160-396126150


--Apple-Mail-160-396126150
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
    charset=iso-8859-1

<html><head>
    <title>Daisies</title>=20
</head><body style=3D"background-attachment: initial; background-origin: =
initial; background-image: =
url(cid:4BFF075A-09D1-4118-9AE5-2DA8295BDF33/bg_pattern.jpg); =
background-position: 50% 0px; ">

[ - snip - the html email content ]


</body></html>=

--Apple-Mail-160-396126150
Content-Transfer-Encoding: base64
Content-Disposition: inline;
    filename=bg_pattern.jpg
Content-Type: image/jpg;
    x-apple-mail-type=stationery;
    name="bg_pattern.jpg"
Content-Id: <4BFF075A-09D1-4118-9AE5-2DA8295BDF33/tbg.jpg>

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAASAAA/+IFOElDQ19QUk9GSUxFAAEB
[ - snip - the image content ]
nU4IGsoTr47IczxmCMvPypi6XZOWKYz/AB42mcaD/9k=

--Apple-Mail-159-396126150--
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 0

使用PHPMailer,您可以直接设置邮件正文:

$mail->Body = 'the contents of one of your .eml files here'
Run Code Online (Sandbox Code Playgroud)

如果您的邮件包含任何 MIME 附件,这很可能无法正常工作,因为某些 MIME 内容必须放入邮件的标头中。您必须修改 .eml 以提取这些特定标头并将它们作为自定义标头添加到 PHPMailer 邮件中