Python使用mailto打开默认邮件客户端,具有多个收件人

2024-06-01 21:37:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个Python函数,使用默认安装的邮件客户端向用户列表发送电子邮件。我想打开电子邮件客户端,让用户有机会编辑用户列表或电子邮件正文。

我做了一些调查,根据这里:

http://www.sightspecific.com/~mosh/WWW_FAQ/multrec.html

在mailto链接中放置多个逗号分隔的收件人显然违反了RFC规范。然而,其他人似乎都是这样做的。在这个问题上,现代人的立场到底是什么?

总之,我发现了以下两个站点:

它似乎建议使用urllib.parse(对我来说是url.parse.quote)和webbrowser.open解决方案。

我尝试了第一个链接(2ality.blogspot.com)中的示例代码,结果运行良好,并打开了我的默认邮件客户端。然而,当我试图在自己的模块中使用代码时,它似乎打开了我的默认浏览器,原因很奇怪。地址栏里没有有趣的文字,它只是打开浏览器。

email_incorrect_phone_numbers()函数位于Employees类中,该类包含employee对象的字典(employee_dict),而employee对象本身具有许多employee属性(sn、givenName、mail等)。完整的代码实际上在这里(Python - Converting CSV to Objects - Code Design

from urllib.parse import quote
import webbrowser

....

    def email_incorrect_phone_numbers(self):
        email_list = []
        for employee in self.employee_dict.values():
            if not PhoneNumberFormats.standard_format.search(employee.telephoneNumber):
                print(employee.telephoneNumber, employee.sn, employee.givenName, employee.mail)
                email_list.append(employee.mail)
        recipients = ', '.join(email_list)
        webbrowser.open("mailto:%s?subject=%s&body=%s" %
                    (recipients, quote("testing"), quote('testing'))
                    )

有什么建议吗?

干杯, 维克多


Tags: 函数代码用户comhttp客户端parseemail