def mailto_url(to=None,subject=None,body=None,cc=None):
url = "mailto:" + urllib.quote(to.strip(),"@,")
sep = "?"
if cc:
url+= sep + "cc=" + urllib.quote(cc,"@,")
sep = "&"
if subject:
url+= sep + "subject=" + urllib.quote(subject,"")
sep = "&"
if body:
body="\r\n".join(body.splitlines())
url+= sep + "body=" + urllib.quote(body,"")
sep = "&"
return url
import urllib
import webbrowser
url = mailto_url('email address', 'subject', 'message body')
webbrowser.open(url,new=1)
我有上面的代码来显示默认的电子邮件客户端。但我需要自动发送电子邮件。有没有办法使用脚本按“发送”按钮?
答案 0 :(得分:1)
为什么需要通过GUI客户端发送消息?客户端被设计为电子邮件协议与人类之间的接口,鼠标和键盘,而不是Python脚本。
您可以使用smtplib模块直接从Python发送电子邮件。如果您需要在Thunderbird中记录它,也许您可以自己确定它。
答案 1 :(得分:0)
如果您希望/需要使用Python,可以使用名为pywinauto的Windows GUI自动化工具。
答案 2 :(得分:0)
将其保存在sendmail.vbs等文件中
dim sendKeyObj
Set sendKeyObj = CreateObject("WScript.Shell")
sendKeyObj.SendKeys "^{ENTER}"
并使用python从命令行运行此脚本
cscript /nologo "C:\path\to\sendmail.vbs"
所以,那将是Python
import os
os.system("cscript /nologo \"C:\\path\\to\\sendmail.vbs\"")
(我希望我能逃脱吧)。您可能希望使用子进程模块而不是os。 VBScript实际上只按下Thunderbird中的Send按钮。我认为这只适用于电子邮件实际上可以出现在其他所有内容的新窗口中。我使用这个设置来发送发票等。