【发布时间】:2011-03-09 02:11:04
【问题描述】:
谁能告诉我如何将图像作为时事通讯的主体部分发送。如何从后端添加任何图像,以便当我向订阅者发送时事通讯时,我想要显示的图像作为邮件的主体部分。
实际上我的意思是我有一个表格,我可以在其中输入文本,并且该文本在时事通讯中很好。现在我也想在表单中添加图像,这样我就不需要写任何东西,只有图像会作为邮件的主体部分进入邮件。
非常感谢。 你们一直非常支持我。
【问题讨论】:
标签: php email newsletter
谁能告诉我如何将图像作为时事通讯的主体部分发送。如何从后端添加任何图像,以便当我向订阅者发送时事通讯时,我想要显示的图像作为邮件的主体部分。
实际上我的意思是我有一个表格,我可以在其中输入文本,并且该文本在时事通讯中很好。现在我也想在表单中添加图像,这样我就不需要写任何东西,只有图像会作为邮件的主体部分进入邮件。
非常感谢。 你们一直非常支持我。
【问题讨论】:
标签: php email newsletter
我不建议在电子邮件中附加图片......这是向电子邮件服务提供商发送垃圾邮件的众多标志之一。最好按照 Marcos 的解决方案中列出的方式进行操作,并通过绝对 URL 从另一台服务器链接。还要记住要避免明显的电子邮件禁忌,这会让你被标记为黑色。只需要一封有问题的电子邮件就可以使用垃圾邮件过滤器来提高标志,该过滤器会积极向 RBL 报告您。相信我,从这些名单中删除并不好玩!
我的公司每天代表我们的客户发送数万封电子邮件。我们曾尝试嵌入某个点进行测试,发现超过 50% 的电子邮件要么无法投递,要么丢失在垃圾邮件过滤的“深渊”中。通过链接,我们的可交付性远远超过 85%,这当然取决于所提供电子邮件的质量。
【讨论】:
首先,您需要以 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";
}
?>
【讨论】:
如果您的时事通讯是 HTML 格式,只需链接到服务器上的实时图像。
如果您没有自己的服务器,只需将图片托管在任何类型的免费图片托管中,例如 (imageshack.us) 并在您的电子邮件正文中添加:
<img src="http://imageshack.us/myimage.png">
当用户打开邮件时,图片将从服务器加载。
只要电子邮件是多部分的(如前所述),任何“无法阅读”HTML 的用户都将获得文本版本,该版本可以“硬链接”到您的实时服务器上的图像.
希望对你有帮助
【讨论】:
您应该创建一个多部分 mime 消息,其中包含图像,可能还包含一些 HTML。
【讨论】:
image/jpeg mime 类型注释。)