$mail->AddEmbeddedImage(filename, cid, name);
//By using this function with this example's value above, results in this code:
$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg ');
为了给你一个更完整的例子来说明它是如何工作的:
<?php
require_once('../class.phpmailer.php');
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->Host = "mail.yourdomain.com"; // SMTP server
$mail->Port = 25; // set the SMTP port
$mail->SetFrom('name@yourdomain.com', 'First Last');
$mail->AddAddress('whoto@otherdomain.com', 'John Doe');
$mail->Subject = 'PHPMailer Test';
$mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");
$mail->Body = 'Your <b>HTML</b> with an embedded Image: <img src="cid:my-attach"> Here is an image!';
$mail->AddAttachment('something.zip'); // this is a regular attachment (Not inline)
$mail->Send();
echo "Message Sent OK<p></p>\n";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
?>
编辑:
关于你的评论,你问如何发送HTML电子邮件与嵌入式图像,所以我给你一个例子,如何做到这一点。 我之前提到的库可以使用SMTP以外的许多方法发送电子邮件。 查看PHPMailer Example page以获取其他示例。 无论如何,如果您不想以库支持的方式发送电子邮件,您仍然可以(应该)使用库来构建消息,然后以您想要的方式发送。 例如: 您可以替换发送电子邮件的行:
$mail->Send();
用这个:
$mime_message = $mail->CreateBody(); //Retrieve the message content
echo $mime_message; // Echo it to the screen or send it using whatever method you want
8条答案
按热度按时间jmp7cifd1#
我强烈建议使用PHPMailer这样的库来发送电子邮件。
它更容易,并自动为您处理大多数问题。
关于显示嵌入(内联)图像,以下是他们的文档:
内联附件
还有一种添加附件的方法。如果您想制作一个HTML电子邮件,其中包含桌面中包含的图像,则必须附加图像,然后将标记链接到该图像。例如,如果您将图像添加为CID my-photo的内联附件,则可以使用
<img src="cid:my-photo" alt="my-photo" />
在HTML电子邮件中访问该图像。具体来说,这里是添加内联附件的函数:
为了给你一个更完整的例子来说明它是如何工作的:
编辑:
关于你的评论,你问如何发送HTML电子邮件与嵌入式图像,所以我给你一个例子,如何做到这一点。
我之前提到的库可以使用SMTP以外的许多方法发送电子邮件。
查看PHPMailer Example page以获取其他示例。
无论如何,如果您不想以库支持的方式发送电子邮件,您仍然可以(应该)使用库来构建消息,然后以您想要的方式发送。
例如:
您可以替换发送电子邮件的行:
用这个:
9jyewag02#
我正在使用这个功能,找到我的信中的所有图像,并将其附加到邮件中。
**参数:**获取您的HTML(您要发送的);
**返回:**必要的HTML和头,可以在
mail()
中使用;示例用法:
cwtwac6a3#
PHPMailer可以自动嵌入HTML邮件中的图片。在编写HTML时,您必须给予文件系统中的完整路径:
它将自动转换为:
nc1teljy4#
根据亚瑟·哈尔马的回答,我做了以下正确的工作与苹果的,Android和iOS的邮件。
1cosmwyk5#
这是我用来在HTML邮件和PDF文档中嵌入图像的代码。
whlutmcx6#
你必须把你的电子邮件编码为多部分的mime,然后你可以把电子邮件作为附件,你在电子邮件中通过cid引用它们。
或者,您可以不附加到电子邮件和直接使用网址,但大多数邮件程序将阻止这一点作为垃圾邮件发送者使用的伎俩,以检测活跃的电子邮件地址。
你没有说是什么语言,但这里有一个example。
zu0ti5jz7#
这里有一种方法可以获得一个字符串变量,而不必担心编码。
如果您有 Mozilla Thunderbird,您可以使用它来获取html图像代码。
我在这里写了一个小教程,并附上了一个截图(这是针对powershell的,但这并不重要):
powershell电子邮件与html图片显示红色x
再一次:
如何在电子邮件中嵌入图像
4nkexdtk8#
我用golang命令行来做这个工作,关键部分是做cid替换:
https://github.com/gonejack/embed-email