使用SES发邮件

来源:互联网 发布:手机电脑无线连接软件 编辑:程序博客网 时间:2024/05/16 08:47

How to use SES, and Using SMTP to Send Email with Amazon SES
(1) 使用SES(Simple Email Service)发邮件的时候,我们需要添加一个发件者邮箱(verify email sender),SES使用这个发件者邮箱作为发件者,添加完认证发信者之后,需要登录发信者邮箱点击确认连接。
SNS(简单消息服务)还有个类似的功能,叫topic,类似邮件组,将多个verified receivers添加到一个topic,然后在CloudWatch或者其他的服务调用,来发群邮件。这次先不讨论SNS。
可以使用下面这小段代码来添加verified sender

import boto.sesconn = boto.ses.connect_to_region('us-east-1')conn.verify_email_address('sender@address.com')

对了,截止我写这些时,SES只支持三个地区,Virginia,Ireland,Oregon(分别对应us-east-1, eu-west-1, us-west-2)
(2) 接来下我们收集SMTP credential相关信息
在SMTP Settings里面我们可以看到SMTP相关信息,例如Virginia地区的:

Server Name:                          email-smtp.us-east-1.amazonaws.comPort:                                 25, 465 or 587Use Transport Layer Security (TLS):   YesAuthentication:                       Your SMTP credentials - see below. 

然后在下面创建SMTP credential点击创建,他就自动创建了一个IAM角色并授权,并产生一组了类似AccessKey的信息,不过名字变成Username和password,形如:

IAM User Name,Smtp Username,Smtp Password"ses-smtp-user.xxxx",AKIxxx,Aqbxxxxxxxxxxxxxxxxxx

(3) 这样使用SMTP发邮件的信息收集全了。可使用ConfigObj来加载配置文件中的Credential,并用smtplib来创建发邮件的对象

import smtplibfrom configobj import ConfigObjcfg = ConfigObj(config_path)cfg_dict = cfg.dict()host = cfg_dict["server"]from_addr = cfg_dict["from_addr"]username = cfg_dict["username"]password = cfg_dict["password"]server = smtplib.SMTP(host)server.starttls()server.login(username, password)server.sendmail(from_addr, receivers, BODY)server.quit()

配置文件形如:

server = email-smtp.us-east-1.amazonaws.comfrom_addr = sender@domain.comusername = AKIxxxpassword = Aqbxxxxxxxxxxxxxxxxxx
0 0
原创粉丝点击