提问人:JadeCeci 提问时间:3/2/2023 更新时间:3/3/2023 访问量:183
定向到带有附件 Python 的默认邮件应用程序
Directing to Default Mail App with Attachment Python
问:
我一直在尝试将用户定向到 PC 上的默认邮件应用程序(或让用户选择他们想要的邮件应用程序),然后打开该应用程序以发送已包含附件的邮件。
我尝试了mailto和webbrowser在这里解释: Python:在系统上启动默认邮件客户端 它们可以工作,但无法再通过这些方法自动添加附件。我读到由于一些安全问题,它被删除了。或者也许我找不到该怎么做。
我通过使用带有 outlook 的 pywin32 实现了我想要的东西。但它要求用户在他们的电脑上有前景,并不是每个人都有。
我不想使用像 smtplib 这样的东西,我只想使用用户 PC 上的任何邮件应用程序,或者可能以某种方式使用 chrome 或其他方式将他们引导到 gmail。我希望用户在尚未登录的情况下向定向应用程序输入自己的密码。不能在代码中输入任何类型的密码。
除了使用限制性的 outlook 之外,我找不到任何解决方案。我能做些什么吗?
答:
在 Windows 上,您可以编写 MIME 格式的电子邮件草稿,并将其写入包含所有所需附件的.eml
文件中。
然后,使用 os.startfile
启动用于处理电子邮件草稿的默认应用程序。
在 Linux 上,没有一个可用的工具 xdg-email。
您可以使用以下命令启动它:os.startfile()
subprocess
import subprocess
subprocess.run(["xdg-email", "--attach", "1.png", "[email protected]"])
但是,它没有实现任何标准接口,而是尝试猜测要启动的应用程序,并逐案支持每个接口: https://github.com/freedesktop/xdg-utils/blob/8ae02631a9806da11b34cd6b274af02d28aee5da/scripts/xdg-email.in
您也可以手动实现相同的逻辑,检测程序以启发式方式启动,并至少启动 Outlook 或 Thunderbird。Thunderbird 有一个命令行界面,可以创建带有 .thunderbird -compose "[email protected],attachment=...
评论