使用带有嵌入式图像的经典ASP发送电子邮件

时间:2010-04-07 10:06:50

标签: image email asp-classic send

我使用wysiwyg编辑器制作NewsLetter ..它允许我上传图像路径 和图像路径存储在上传目录中。 不是当我使用它检索图像工作在网站.. 编辑器的值存储在数据库中 例 <br>

<img src="upload/acb.gif">

<br>

您好

我正在发送电子邮件,此电子邮件的详细信息是从数据库收到的 这个细节发送给访客

他是所有文本值但不能看到图像

所以建议我做什么..?

5 个答案:

答案 0 :(得分:3)

如果您使用CDOSYS.Message发送电子邮件,则可以使用Message.CreateMHTMLBody(url)方法轻松发送包含嵌入图像的完整网页。

Dim Message
Set Message = CreateObject("CDOSYS.Message")

Message.From = "from@email.org"
Message.To = "to@email.org"
Message.CreateMTHMLBody "http://yourserver.org/email.html"
Message.Send()

答案 1 :(得分:1)

您必须将网站网址添加到img source

&lt; img src =“http://www.sitename.com/upload/acb.gif”&gt;因为用户没有从他的邮箱访问您的网站。

为此,您可以将“http://www.sitename.com/”设置为web.config中的密钥并在邮件中使用。

这肯定会解决您的问题。快乐的编码!!!!!!!!!!!!!

答案 2 :(得分:1)

我最近清理了一些我曾经躺在那里做的代码并在github上作为“Gist”在线打了一针;希望它仍能帮到某人!

Sending embedded images with CDOSYS

此解决方案使用CDO(CDOSYS / CDO.Message)和“AddAttachment”,并手动控制附件的属性,使其可以在电子邮件HTML中使用,并避免它们在电子邮件中显示为可单独下载的附件客户端。

用法非常简单,只需在消息的HTML中通过本地路径(在运行代码的计算机上)引用图像,例如:

Some Image: <img src="<EMBEDDEDIMAGE:C:\test.jpeg>" />

代码将获取文件名,将文件添加为邮件附件,并将邮件HTML的相关部分替换为该附件的内部引用。

答案 3 :(得分:0)

您使用什么来发送电子邮件,我过去使用AspEmail取得了成功:http://www.aspemail.com/

它解释了如何在此处发送嵌入图像:http://www.aspemail.com/manual_04.html

但是你必须在你的服务器上安装它,如果你使用共享主机这可能是一个问题,如果你运行自己的服务器非常容易!

答案 4 :(得分:0)

您将使用AddRelatedBodyPart:

嵌入使用 创建数组并将其作为参数传递给“SendMail”函数 在Email Body中使用,例如

Dim arrRelatedBodyPart(1)
arrRelatedBodyPart(0) = Server.MapPath(".") & "/images/barcode/bar_blk.gif"
arrRelatedBodyPart(1) = Server.MapPath(".") & "/images/barcode/bar_wht.gif"

示例

For i = 0 To UBound(arrRelatedBodyPart)
    Dim strPathAndFileName: strPathAndFileName = arrRelatedBodyPart(i)
    Dim strFileName: strFileName = GetFileName(arrRelatedBodyPart(i), "/")
    '.AddRelatedBodyPart strPathAndFileName, strFileName, cdoRefTypeId

    Set objCDOBodyPart = .AddRelatedBodyPart(strPathAndFileName, strFileName, 1)
    objCDOBodyPart.Fields.Item("urn:schemas:mailheader:Content-ID") = "<" & strFileName & ">"
    objCDOBodyPart.Fields.Update
Next