Python 3.x 如何发送多个收件人sendgrid V3 api Python

Python 3.x 如何发送多个收件人sendgrid V3 api Python,python-3.x,sendgrid,Python 3.x,Sendgrid,任何人请帮助,我正在使用sendgrid v3 api。但我找不到任何方法向多个收件人发送电子邮件。先谢谢你 import sendgrid from sendgrid.helpers.mail import * sg = sendgrid.SendGridAPIClient(apikey="SG.xxxxxxxx") from_email = Email("FROM EMAIL ADDRESS") to_email = Email("TO EMAIL

任何人请帮助,我正在使用sendgrid v3 api。但我找不到任何方法向多个收件人发送电子邮件。先谢谢你

    import sendgrid
    from sendgrid.helpers.mail import *

    sg = sendgrid.SendGridAPIClient(apikey="SG.xxxxxxxx")
    from_email = Email("FROM EMAIL ADDRESS")
    to_email = Email("TO EMAIL ADDRESS")
    subject = "Sending with SendGrid is Fun"
    content = Content("text/plain", "and easy to do anywhere, even with Python")
    mail = Mail(from_email, subject, to_email, content)
    response = sg.client.mail.send.post(request_body=mail.get())
    print(response.status_code)
    print(response.body)
    print(response.headers)

我想向多个收件人发送电子邮件。我想把你的邮件发出去xxx@gmail.com, yyy@gmail.com“

您可以通过以下方式更新代码。您可以在Sendgrid包中的
mail\u example.py
中找到相同的内容

personalization = get_mock_personalization_dict()
mail.add_personalization(build_personalization(personalization))

def get_mock_personalization_dict():
    """Get a dict of personalization mock."""
    mock_pers = dict()
    mock_pers['to_list'] = [Email("test1@example.com",
                              "Example User"),
                            Email("test2@example.com",
                              "Example User")]
    return mock_pers

def build_personalization(personalization):
    """Build personalization mock instance from a mock dict"""
    mock_personalization = Personalization()
    for to_addr in personalization['to_list']:
        mock_personalization.add_to(to_addr)
    return mock_personalization

向sendgrid v3中的多个收件人发送电子邮件

        import time
        import sendgrid
        import os

        print "Send email to multiple user"

        sg = sendgrid.SendGridAPIClient(apikey='your sendrid key here')
        data = {
        "personalizations": [
            {
            "to": [{
                    "email": "adiii@gmail.com"
                }, {
                    "email": "youremail@gmail.com"
                }],
            "subject": "Multiple recipent Testing"
            }
        ],
        "from": {
            "email": "Alert@gmail.com"
        },
        "content": [
            {
            "type": "text/html",
            "value": "<h3 style=\"color: #ff0000;\">These checks are silenced please check dashboard. <a href=\"http://sensu.mysensu.com/#/silenced\" style=\"color: #0000ff;\">Click HERE</a></h3>  <br><br> <h3>For any query please contact DevOps Team<h3>"
            }
        ]
        }
        response = sg.client.mail.send.post(request_body=data)
        print(response.status_code)
        if response.status_code == 202:
            print "email sent"
        else:
            print("Checking body",response.body)
            
导入时间
导入sendgrid
导入操作系统
打印“向多个用户发送电子邮件”
sg=sendgrid.SendGridAPIClient(apikey='your sendrid key here')
数据={
“个性化”:[
{
“致”:[{
“电子邮件”:adiii@gmail.com"
}, {
“电子邮件”:youremail@gmail.com"
}],
“主题”:“多重沉淀测试”
}
],
“发件人”:{
“电子邮件”:Alert@gmail.com"
},
“内容”:[
{
“类型”:“文本/html”,
“值”:“这些检查被取消,请检查仪表板。

如需任何查询,请联系DevOps团队” } ] } response=sg.client.mail.send.post(请求体=数据) 打印(响应状态\ U代码) 如果response.status_code==202: 打印“已发送电子邮件” 其他: 打印(“检查正文”,响应.正文)

基于Subhrajyoti Das的回答,我编写了以下代码,这是向多个收件人发送电子邮件的
mail_example.py
示例的简单版本

def SendEmail():
    sg = sendgrid.SendGridAPIClient(api_key="YOUR KEY")
    from_email = Email ("FROM EMAIL ADDRESS")

    to_list = Personalization()
    to_list.add_to (Email ("EMAIL ADDRESS 1"))
    to_list.add_to (Email ("EMAIL ADDRESS 2"))
    to_list.add_to (Email ("EMAIL ADDRESS 3"))

    subject = "EMAIL SUBJECT"
    content = Content ("text/plain", "EMAIL BODY")
    mail = Mail (from_email, subject, None, content)
    mail.add_personalization (to_list)
    response = sg.client.mail.send.post (request_body=mail.get())

    return response.status_code == 202

请注意,使用此处其他答案的代码,电子邮件收件人将在“收件人”字段中看到彼此的电子邮件地址。为了避免这种情况,必须为每个电子邮件地址使用单独的
个性化对象:

def SendEmail():
    sg = sendgrid.SendGridAPIClient(api_key="YOUR KEY")
    from_email = Email ("FROM EMAIL ADDRESS")

    person1 = Personalization()
    person1.add_to(Email ("EMAIL ADDRESS 1"))
    person2 = Personalization()
    person2.add_to(Email ("EMAIL ADDRESS 2"))

    subject = "EMAIL SUBJECT"
    content = Content ("text/plain", "EMAIL BODY")
    mail = Mail (from_email, subject, None, content)
    mail.add_personalization(person1)
    mail.add_personalization(person2)
    response = sg.client.mail.send.post (request_body=mail.get())

    return response.status_code == 202

您可以传递字符串列表

message=Mail(
来自sender@email.com',
发送电子邮件=['xxx@email.com', 'yyy@email.com'],
subject='subject',
html_content='content')
sg=SendGridAPIClient('SENDGRID\u API\u KEY'))
响应=sg.send(消息)

您可以通过在
邮件
构造函数的
收件人电子邮件
参数中列出多个收件人来向多个收件人发送电子邮件:

from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import *

message = Mail(
    from_email='sender@example.com',
    to_emails=[To('test@example.com'), To('test2@example.com')],
    subject='Subject line',
    text_content='This is the message of your email',
)

sg = SendGridAPIClient(SENDGRID_API_KEY)
response = sg.send(message)
通过此配置,每个收件人都可以看到电子邮件中列出的对方。为了避免这种情况,请使用
is_multiple
参数告诉Sendgrid为每个收件人创建一个新的
个性化设置

message = Mail(
    from_email='sender@example.com',
    to_emails=[To('test@example.com'), To('test2@example.com')],
    subject='Subject line',
    text_content='This is the message of your email',
    is_multiple=True  # Avoid listing all recipients on the email
)

请注意,所有收件人都可以在电子邮件中看到对方。(看)这对我不起作用。我收到一个“python\u http\u client.exceptions.BadRequestError:http错误400:Bad Request”错误。如果我只直接使用Mail()向一个人发送邮件,它就会起作用。这个例子还能用吗?我想我能弄明白。
add_to()
中的
Email
需要更改为
to
我也收到错误400错误请求,但更改此处的参数顺序有助于:mail=mail(from_Email,None,subject,content)这对我不起作用。我得到以下错误“python\u http\u client.exceptions.badRequestError:http错误400:Bad Request”。如果我只是将“收件人电子邮件”字段替换为“收件人”xxx@email.com)
,那么它就行了,但它违背了目的。