点击发送按钮
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)
我有上面的代码可以打开默认的邮件客户端。但是我想要自动发送邮件。有办法用这个脚本来点击“发送”按钮吗?
3 个回答
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\"")
(我希望我写的转义符没错)。你可能想用 subprocess 模块,而不是 os 模块。这个 VBScript 其实就是在 Thunderbird 里按下发送按钮。我觉得这个方法只有在邮件能在其他窗口前面弹出来的时候才有效。我用这个方法来发送发票之类的东西。
0
如果你想用Python来做这个,有一个叫做 pywinauto 的工具,它可以在Windows上帮助你自动化一些操作,可能会对你有用。
1
为什么你需要通过图形界面客户端发送消息呢?这个客户端是用来让人类通过鼠标和键盘与邮件协议进行互动的,而不是让你的Python脚本来用。
你可以直接用Python中的 smtplib 模块发送邮件。如果你想在Thunderbird中留个记录,也许可以抄送一份给自己。