excel - 如何在从模板创建的电子邮件正文中的特定位置添加 JPG 文件?
问题描述
我正在尝试使用 Outlook 模板分发电子邮件。
在经常模板上,在特定位置,我想附加一个我从 Excel 范围创建的 jpg 文件。
Dim OutApp As Object
Dim OutMail As Object
Dim str_jpeg_file as String
str_jpeg_file = "B:\temp\test.jpg"
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItemFromTemplate(ThisWorkbook.Path & "\Test.oft")
With OutMail
.To = "test@abcd.com"
.CC = ""
.BCC = ""
.Subject = "Test mail"
.SentOnBehalfOfName = "zyz@abcd"
.Attachments.Add str_jpeg_file, 1, 0
.HTMLBody = Replace(.HTMLBody, "##IMAGE_PLACEHOLDER##", "<img src=""cid:test.jpg""height=520 width=750>")
'.Send
.display
End With
编辑:
jpg 文件路径已更新,即str_jpeg_file
解决方案
给你一个完整的工作示例:
Option Explicit
Sub test()
Dim OutApp As Object
Dim OutMail As Object
Dim str_jpeg_file As String
str_jpeg_file = "C:\Temp\test.png"
Set OutApp = CreateObject("Outlook.Application")
'Set OutMail = OutApp.CreateItemFromTemplate(ThisWorkbook.Path & "\Test.oft")
'instead of a template I create a new mail
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "test@abcd.com"
.CC = ""
.BCC = ""
.Subject = "Test mail"
.SentOnBehalfOfName = "zyz@abcd"
.Attachments.Add str_jpeg_file, 1, 0
'first we write some placeholder text so we can replace it
.HTMLBody = "lalala ##IMAGE_PLACEHOLDER## lala"
'replace
.HTMLBody = Replace(.HTMLBody, "##IMAGE_PLACEHOLDER##", "<img src=""cid:test.png""height=256 width=256>")
'.Send
.display
End With
End Sub
请注意,我使用了新电子邮件(无模板),因为它更容易在此处显示。
它完美地工作:
因此,如果它对您不起作用,则您的图像文件不是有效图像,或者您做错了其他错误,例如拼写错误等,或者您的模板在某种程度上是问题所在。再次检查上面的代码。
推荐阅读
- python - 来自以列值作为键的列表字典的 DataFrame
- python-2.7 - 使用 h5py 锁定 HDF 文件
- azure - Azure 应用服务:无法将现有应用服务发布到 Linux
- regex - 使用正则表达式仅在字符串的一部分内替换可变数量的组
- python - Tensorflow:重新运行训练会话时,get_variable 运行初始化程序并重新创建变量,而不是检索现有变量
- visual-studio-2017 - 带有 apache cordova 的 Visual Studio 2017 应用程序在使用 Debug-Windowsx64-Local Machine 的 AJAX Post 上获得 NetworkError 但适用于 Android 和 IOS
- java - GridBagLayout 网格高度约束不影响结果
- postgresql - 添加限制时是否有默认顺序?
- android - 互联网掉线后,Retrofit2 Singleton 导致 http 请求失败
- jenkins - 如何从 Jenkinsfile 触发组织扫描?