Ошибка Sendgrid - ValueError ('Пожалуйста, используйте объект To, Cc или B cc.',) - PullRequest
0 голосов
/ 16 января 2020

Мы используем sendgrid 6.0.5 python2 .7 в стандарте движка приложений Google.

Следующий код работает

subject = data_sent_obj["subject"]
body_html            = data_sent_obj["body_html"]
body_text            = data_sent_obj["body_text"]

email_id_variable = "info@mycompany.com"
to_email = "info@mycompany.com"         # THIS WORKS
# to_email = Email(email_id_variable)   # THIS DOES NOT WORK

email_message = Mail(
    from_email          = 'info@mycompany.com',
    to_emails           = to_email,
    subject             = subject,                   
    html_content        = body_html)

personalization = Personalization()
personalization.add_to(Email(to_email))
bcc_list = bcc_email_list
for bcc_email in bcc_list:
    personalization.add_bcc(Email(bcc_email))


email_message.add_personalization(personalization)


try:
    sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
    response = sg.send(email_message)

Когда мы используем

to_email = Email(email_id_variable) we get the following error.
ValueError('Please use a To, Cc or Bcc object.',)

По сути, мы хотели бы отправить электронное письмо по адресу, который находится в переменной.

1 Ответ

1 голос
/ 23 января 2020

Кажется, проблема заключается не в использовании переменной, а в реализации Mail, удаляющей объект Email в качестве возможности для списка в to_emails, поэтому вместо этого используйте объект To:

from sendgrid.helpers.mail import To
...
to_email = To(email_id_variable)

То же самое может работать с cc и b cc объектами.

...