我正在使用python3.5来自动处理一些工作邮件。我们不能使用smtp。必须通过win32com控制outlook。我把一切都搞定了。我可以创建一个html电子邮件。我可以给它一个电子邮件地址,如果它是打开的outlook配置文件中的活动电子邮件地址,它将从该地址发送。我可以添加抄送、密件抄送、主题等
我的问题是添加outlook中存储的签名。我已经读到outlook签名不公开,因此我不能像调用SendUsingAccount或邮件.CC领域。在
我的替代方法是让用户使用tkinter和askopenfilename()指定文件。在
这在很大程度上是有效的。用户指定签名文件位置一次。我把它存储在我的tkinter程序启动时读取的数据文件中。用户生成电子邮件并发送。在
问题是我从签名文件中读取HTML并将其存储在一个变量中,然后将其附加到现有的HTMLBody中。在
它起作用了。但是任何包含在HTML签名文件中的图片都不会显示。在
我试着写一个附加的脚本,把html文件中图片的短地址替换成完整的目录,希望能解决这个问题。不行。在
有没有办法确保签名文件中包含的任何图片都能在电子邮件中显示???在
这是我的签名文件HTML阅读器/编辑器
def altersigfile(file):
fullDir = file
newDir = fullDir.rsplit("\\",1)[0]
subDir = fullDir.rsplit("\\", 1)[1]
subDir = subDir.replace(" ", "%20")
subDir = subDir.strip(".htm")
subDir += "_files"
newDir += "/" + subDir
newDir = newDir.replace("\\", "/")
newsigfile = ""
with open(fullDir,"r") as file:
for line in file:
if "src=" in line:
check = ""
newline = ""
check = r'src="' + subDir
newline = re.sub(subDir, newDir, line)
newsigfile += newline
else:
newsigfile += line
return newsigfile
这是我的电子邮件脚本:
^{pr2}$重申一下。除了签名文件中包含的图片将不显示外,上述任何方式都有效。这是唯一的错误,我似乎找不到一个方法使它工作。 任何帮助都将不胜感激。谢谢您。在
对不起,第二批代码的格式化。在我的一生中,我似乎无法使它的格式正确。在
以防有人好奇。我在空闲时是这样做的:
这里的关键部分是正则表达式。 基本上是以下几行:
^{pr2}$上面的代码行查找一个精确的字符串“body”,后跟任意数量的任何字符“.*”,但不是以贪婪的方式“?”然后以“>;”结尾 一旦我有了它,我只是简单地用匹配的字符串替换匹配的字符串+我想在我的电子邮件正文中的任何东西。g2g
一些其他的选择。在
Redemption通过RDOSession.Signatures集合及其RDOSignature对象公开将签名(文本、图像、样式)复制到指定消息的
ApplyTo
方法。如果您只需要默认签名,请让Outlook执行此操作-当Outlook显示邮件(
MailItem.Display
)或Outlook认为您将通过访问MailItem.GetInspector
属性很快显示邮件时,将添加该签名。只要您调用MailItem.Display
或MailItem.GetInspector
,只要您还没有使用body或HTMLBody属性设置消息正文,消息正文就会添加签名。现在您所要做的就是读取HTMLBody
属性(它只有签名),将文本合并到该值中,并将HTMLBody
属性设置回原处。注意,不能简单地连接两个HTML字符串,它们必须合并。相关问题 更多 >
编程相关推荐