使用Python在AWS EC2上发送电子邮件

时间:2017-06-29 04:30:19

标签: python email amazon-web-services amazon-ec2

我希望动态生成电子邮件内容,并使用来自EC2服务器的Python从Gmail帐户发送电子邮件。我在localhost上运行时工作正常,但是当我在EC2上运行相同的代码时,它不起作用......

这是我的代码:

from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
msg = MIMEMultipart()

part = MIMEApplication(file("<pathtopdf>").read())
part.add_header('Content-Disposition', 'attachment; filename="<nameofpdf.pdf>"')
msg.attach(part)

msg['From'] = "<username>@gmail.com"
msg['To'] = "<username>@gmail.com"
msg['Subject'] = "Hello PDF"
import smtplib 
server = smtplib.SMTP('smtp.gmail.com',587) #port 465 or 587
server.ehlo()
server.starttls()
server.ehlo()
server.login(<login info params>)
server.close()

在没有使用Amazon SES的情况下,有没有这样做?我只需要根据客户的要求发送电子邮件,我只需根据客户输入生成一个快速的PDF,并通过他们指定发送给的客户发送电子邮件给他们...这是一个非常简单的操作我必须跳过的篮筐令人沮丧。

2 个答案:

答案 0 :(得分:0)

修改

我建议您使用AWS SES。因为Gmail会阻止EC2 IP地址。

Gmail SMTP is not working in ec2 instance

答案 1 :(得分:0)

您必须在出站规则中启用端口587.