Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sendgrid-如何指定收件人SMTP服务器?_Python_Azure_Smtp_Sendgrid_Smtplib - Fatal编程技术网

Python sendgrid-如何指定收件人SMTP服务器?

Python 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

我正在尝试向私有SMTP服务器发送电子邮件,可以使用python
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端点。您可以结束此问题,我们无法回答您的问题;)