Python sendgrid-如何指定收件人SMTP服务器?
我正在尝试向私有SMTP服务器发送电子邮件,可以使用pythonPython sendgrid-如何指定收件人SMTP服务器?,python,azure,smtp,sendgrid,smtplib,Python,Azure,Smtp,Sendgrid,Smtplib,我正在尝试向私有SMTP服务器发送电子邮件,可以使用pythonsmtplib如下所示 s = smtplib.SMTP(server, port) s.sendmail(me, you, msg.as_string()) 正在尝试将其转换为Sendgrid(因为Azure阻止SMTP),但它没有指定专用SMTP服务器的选项 import sendgrid import os from sendgrid.helpers.mail import * sg = sendgrid.SendGrid
smtplib
如下所示
s = smtplib.SMTP(server, port)
s.sendmail(me, you, msg.as_string())
正在尝试将其转换为Sendgrid(因为Azure阻止SMTP),但它没有指定专用SMTP服务器的选项
import sendgrid
import os
from sendgrid.helpers.mail import *
sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
from_email = Email("test@example.com")
to_email = Email("test@example.com")
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)
任何帮助都将不胜感激
谢谢这很正常,sendgrid的python包不使用smtp协议,而是请求使用经典HTTPS请求的API 因此,除非您的smtp服务器可以通过API(定制?)访问,否则您不可能使用sendgrid包
如果您想为sendgrid定制python包,以便指向您自己的API端点,该端点将充当smtp请求的中继,您可以自由修改其源代码:或者,您可以使用端口2525,因为据我所知,所有主要smtp供应商都支持该端口,而且它没有被Azure阻止。但是,如果您的smtp服务器不是主要供应商提供的,并且您无权访问它以更改/添加端口,则您别无选择,只能转到Azure以外的服务进行托管,这可能很难,因为所有主要供应商现在都阻止25465587 谢谢你的回答。根本的问题是,SMTP发送在Microsoft Azure上被阻止(我也怀疑是AWS),他们建议使用诸如sendgrid之类的中继服务。但是,如果我必须修改sendgrid以使用smtp,我怀疑我会以任何方式遇到Azure阻止问题。您必须在smtp服务器附近创建一个API端点,作为中继。您以HTTPS从azure出发,指向API端点。您可以结束此问题,我们无法回答您的问题;)