6

谁能告诉我如何将图像作为时事通讯的主体部分发送。如何从后端添加任何图像,以便当我向订阅者发送时事通讯时,我想要显示的图像作为邮件的主体部分。

实际上我要说的是我有一个表格,我可以在其中输入文本,并且该文本在时事通讯中很顺利。现在我也想在表单中添加图像,这样我就不需要写任何东西,只有图像会作为邮件的主体部分进入邮件。

太感谢了。你们一直非常支持我。

4

4 回答 4

7

如果您的时事通讯是 HTML 格式,只需链接到服务器上的实时图像。

如果您没有自己的服务器,只需将图像托管在任何类型的免费图像托管即(imageshack.us)中,并在您的电子邮件正文中添加:

<img src="http://imageshack.us/myimage.png">

当用户打开电子邮件时,图像将从服务器加载。

只要电子邮件是多部分的(如前所述),任何“无法阅读” HTML 的用户都将获得文本版本,该版本可以“硬链接”到您的实时服务器上的图像。

希望这可以帮助你

于 2010-06-28T11:14:57.107 回答
6

首先,您需要以 HTML 格式发送您的时事通讯。然后,您可以将图像插入到您的时事通讯中

<img src="image_url">

image_url 可以是远程的或嵌入的。远程图像使电子邮件更小,但大多数邮件客户端会要求用户批准。嵌入的图像将在不询问用户的情况下显示,但它将是电子邮件的一部分。

要使用远程图像,只需将图像托管在某处并将 URL 作为 image_url。

嵌入图像需要编码为 MIME 部分。做到这一点并非易事。你需要使用像 PhpMailer 这样的包,

http://sourceforge.net/projects/phpmailer/

这是一个例子,

<?php
require("class.phpmailer-lite.php");
$mail = new PHPMailerLite();

$mail->From="you@example.com";
$mail->FromName="Your Name";

$mail->AddAddress("list@example.com");
$mail->Subject = "Your fancy newsletter";

$mail->IsHTML(true);
$mail->AddEmbeddedImage('image.png', 'image_id', 'test.png', 'base64', 'image/png');
$mail->Body = <<<EOT
<h1>My Newsletter</h1>
<p>This picture is embedded in newsletter: <img src="cid:image_id" /></p>
EOT;
$mail->AltBody="Text only, sorry no image";

if(!$mail->Send())
{
   echo "Error sending: " . $mail->ErrorInfo;
}
else
{
   echo "Mail is sent";
}
?>
于 2010-06-28T11:38:12.587 回答
2

我不建议将图像附加到电子邮件中……这是向电子邮件服务提供商发送垃圾邮件的众多标志之一。最好按照 Marcos 的解决方案中列出的方式进行操作,并通过绝对 URL 从另一台服务器链接。还要记住要避免明显的电子邮件禁忌,这会让你被标记为黑色。只需要一封可疑的电子邮件就可以使用垃圾邮件过滤器来提高标志,该过滤器会积极向 RBL 报告您。相信我,从那些名单上掉下来并不好玩!

我的公司每天代表我们的客户发送数以万计的电子邮件。我们曾尝试嵌入某个点进行测试,发现超过 50% 的电子邮件要么无法投递,要么丢失在垃圾邮件过滤的“深渊”中。通过链接,我们的可交付性远远超过 85%,这当然取决于所提供电子邮件的质量。

于 2010-06-28T16:04:44.540 回答
2

您应该创建一个multipart mime message,其中包含图像和一些 HTML。

于 2010-06-28T11:12:16.177 回答