在 sendgrid 中发送多个动态模板电子邮件时出现个性化字段错误
Personalizations field error when sending multiple dynamic template emails in sendgrid
我正在尝试使用 Django 中的 Sendgrid 动态模板发送大量电子邮件并收到此错误:The personalizations field is required and must have at least one personalization.
使用sendgrid 6.9.7
有没有人看到我可能哪里出错了:
from django.conf import settings
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail, To
def send_mass_email():
to_emails = [
To(email='email1@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 1',
}),
To(email='email2@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 2',
}),
]
msg = Mail(
from_email='notifications@mysite.com>',
)
msg.to_emails = to_emails
msg.is_multiple = True
msg.template_id = "d-template_id"
try:
sendgrid_client = SendGridAPIClient(settings.SENDGRID_API_KEY)
response = sendgrid_client.send(msg)
print(response.status_code)
print(response.body)
print(response.headers)
except Exception as e:
print(e)
print(e.body)
return
输出为
HTTP Error 400: Bad Request
b'{"errors":[{"message":"The personalizations field is required and must have at least one personalization.","field":"personalizations","help":"http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#-Personalizations-Errors"}]}'
Mail
class 在初始化期间用初始值做一些事情(它根据 to_emails
设置私有内部值),所以你需要传递 to_emails
和 is_multiple
在初始值设定项中而不是稍后:
from django.conf import settings
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail, To
def send_mass_email():
to_emails = [
To(email='email1@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 1',
}),
To(email='email2@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 2',
}),
]
msg = Mail(
from_email='notifications@mysite.com>',
to_emails = to_emails,
is_multiple = True
)
msg.template_id = "d-template_id"
try:
sendgrid_client = SendGridAPIClient(settings.SENDGRID_API_KEY)
response = sendgrid_client.send(msg)
print(response.status_code)
print(response.body)
print(response.headers)
except Exception as e:
print(e)
print(e.body)
return
我正在尝试使用 Django 中的 Sendgrid 动态模板发送大量电子邮件并收到此错误:The personalizations field is required and must have at least one personalization.
使用sendgrid 6.9.7
有没有人看到我可能哪里出错了:
from django.conf import settings
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail, To
def send_mass_email():
to_emails = [
To(email='email1@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 1',
}),
To(email='email2@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 2',
}),
]
msg = Mail(
from_email='notifications@mysite.com>',
)
msg.to_emails = to_emails
msg.is_multiple = True
msg.template_id = "d-template_id"
try:
sendgrid_client = SendGridAPIClient(settings.SENDGRID_API_KEY)
response = sendgrid_client.send(msg)
print(response.status_code)
print(response.body)
print(response.headers)
except Exception as e:
print(e)
print(e.body)
return
输出为
HTTP Error 400: Bad Request
b'{"errors":[{"message":"The personalizations field is required and must have at least one personalization.","field":"personalizations","help":"http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#-Personalizations-Errors"}]}'
Mail
class 在初始化期间用初始值做一些事情(它根据 to_emails
设置私有内部值),所以你需要传递 to_emails
和 is_multiple
在初始值设定项中而不是稍后:
from django.conf import settings
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail, To
def send_mass_email():
to_emails = [
To(email='email1@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 1',
}),
To(email='email2@gmail.com',
dynamic_template_data={
"thing_i_want_personalized": 'hello email 2',
}),
]
msg = Mail(
from_email='notifications@mysite.com>',
to_emails = to_emails,
is_multiple = True
)
msg.template_id = "d-template_id"
try:
sendgrid_client = SendGridAPIClient(settings.SENDGRID_API_KEY)
response = sendgrid_client.send(msg)
print(response.status_code)
print(response.body)
print(response.headers)
except Exception as e:
print(e)
print(e.body)
return