我正在使用 Python 的 SendGrid。我想通过电子邮件抄送一些人。似乎他们可能不再支持对电子邮件进行抄送,尽管我不确定这是真的吗?但肯定有办法解决它,但我很惊讶我找不到太多支持。
这是我的基本代码:
sg = sendgrid.SendGridAPIClient(apikey='*****')
from_email = Email(sender_address, sender_name)
to_email = Email(email_address)
subject = subject
content = Content("text/plain", email_message)
mail = Mail(from_email, subject, to_email, content)
response = sg.client.mail.send.post(request_body=mail.get())
Run Code Online (Sandbox Code Playgroud)
我该如何修改它以便它会在电子邮件中抄送某人?
我解决了。圣地亚哥的回答大部分让我明白了,但这是我需要做的:
sg = sendgrid.SendGridAPIClient(apikey='****')
from_email = Email(sender_address, sender_name)
to_email = Email(to_email)
cc_email = Email(cc_email)
p = Personalization()
p.add_to(to_email)
p.add_cc(cc_email)
subject = subject
content = Content("text/plain", email_message)
mail = Mail(from_email, subject, to_email, content)
mail.add_personalization(p)
response = sg.client.mail.send.post(request_body=mail.get())
Run Code Online (Sandbox Code Playgroud)
如果您不包含 p.add_to(to_email) 它会拒绝它,因为个性化对象中没有“to email”。另外,如果您不在邮件对象中包含“to_email”,它会拒绝它,因为它正在寻找该参数,因此您必须有点多余并定义它两次。
使用 SendGridPersonalization()或Email()类对我不起作用。这就是我让它工作的方式:
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail, Cc
# using a list of tuples for emails
# e.g. [('email1@example.com', 'email1@example.com'),('email2@example.com', 'email2@example.com')]
to_emails = []
for r in recipients:
to_emails.append((r, r))
# note the Cc class
cc_emails = []
for c in cc:
cc_emails.append(Cc(c, c))
message = Mail(
from_email=from_email,
to_emails=to_emails,
subject='My Subject',
html_content=f'<div>My HTML Email...</div>
)
if cc_emails:
message.add_cc(cc_emails)
try:
sg = SendGridAPIClient(os.getenv('SENDGRID_API_KEY'))
sg.send(message)
except Exception as e:
print(f'{e}')
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人。
| 归档时间: |
|
| 查看次数: |
3629 次 |
| 最近记录: |