Yagmail(Python)-如何使用密件抄送/密件副本发送电子邮件

时间:2019-08-20 18:42:22

标签: python yagmail

我正在尝试使用Yagmail和Python将电子邮件以及对我的密件副本(BCC)发送给联系人列表。我在Yagmail文档中找不到任何描述如何执行此操作的示例。我知道有可能,但是我的当前代码不断出现错误。

有人可以帮我解决这个问题吗?

注意:该代码将一直起作用,直到我将“密件抄送”添加为方法参数。

代码:

yag = yagmail.SMTP(
            user={real_sender:alias_sender}, password="xxxxxx", host='smtp.xxxxxx.com', port='587',
            smtp_starttls=True, smtp_ssl=None, smtp_set_debuglevel=0, smtp_skip_login=False,
            encoding='utf-8', oauth2_file=None, soft_email_validation=True)

to = all_receivers ### list of contacts 1
bcc = all_receivers_bcc ### list of contacts 2
subject = 'SUBJECT HERE'
contents = 'HTML CONTENT HERE'

yag.send(to, bcc, subject, contents) ### FAILS HERE WHEN THE "bcc" is added

2 个答案:

答案 0 :(得分:1)

您需要告诉python您要输入哪个参数。如果不这样做,则需要确保以正确的顺序发送参数。试试这个:

yag.send(to=all_receivers, bcc=all_receivers_bcc , subject='SUBJECT HERE', contents='HTML CONTENT HERE')

答案 1 :(得分:1)

我认为该代码将起作用,请进行测试:
Yagmail Usage Doc
此示例使用字符串插值来放置变量。

yag = yagmail.SMTP(
            user={real_sender:alias_sender}, password="xxxxxx", host='smtp.xxxxxx.com', port='587',
            smtp_starttls=True, smtp_ssl=None, smtp_set_debuglevel=0, smtp_skip_login=False,
            encoding='utf-8', oauth2_file=None, soft_email_validation=True)

all_receivers = str(['aContact1@gmail.com','aContact2@gmail.com','aContact3@gmail.com']) #contacts list
all_receivers_bcc = str(['bbcContact1@gmail.com','bbcContact2@gmail.com','bbcContact3@gmail.com'])#contact list
subject = 'SUBJECT HERE'
contents = 'HTML CONTENT HERE'

yag.send(to='{all_receivers}', subject='{subjects}', contents='{contents}', bcc='{all_receivers_bbc}')