详细教程:
http://www.sendcloud.net/doc/email/code/#python
https://www.sendcloud.net/doc/email/send_email/#_2
要设置一个模板
python2.7
Sendcloud 提供发邮件的 API。
我们通过python 调用这个 API 来发送邮件。
- 打开SendCloud地址 ,注册,然后实名认证。付费,最少59元。
- 发送设置里面加一个域名,然后按照说明解析。
- 创建一个 API User
创建完成后,会得到一个 API_USER 和一个 API_KEY
这个会用到我们的脚本里
测试API_USER
http://sendcloud.sohu.com/doc/email/user_info/#api_user
把 API_USER 和 KEY 替换掉星号就可以了。
http://sendcloud.sohu.com/webapi/userinfo.get.json?api_user=***&api_key=***
返回结果
完整代码
转载自 http://xiaorui.cc/2014/11/12/调用sendcloud接口实现邮件推送收取python/
# -*- coding:utf-8 -*-
import smtplib
import json
from email import Encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
fromEmail = 'send@qq.com' # 用正确邮件地址替代
toEmail=['ssd2@icloud.com','490238@qq.com'] # 用正确邮件地址替代收件人地址
msg = MIMEMultipart('alternative')
msg['Subject'] = "邮件标题"
msg['From'] = fromEmail #调用发件人
msg['To'] = ', '.join(toEmail) #调用收件人
html = """<html><head></head><body><p>Hi! -name-<br>hello world!!!</p></body></html>"""
part = MIMEText(html, 'html')
msg.attach(part)
#不同于登录SendCloud站点的帐号,您需要登录后台创建发信子帐号,使用子帐号和密码才可以进行邮件的发送。
username = 'quanziappfajian' #API_USER
password = 'xxxxxxxxxxxx' #API_KEY
s = smtplib.SMTP('smtpcloud.sohu.com:25')
s.login(username, password)
s.sendmail(fromEmail, toEmail, msg.as_string())
s.quit()
测试完成已经收到了邮件。
用 send cloud 的好处就是,他自带签名,还有取消订阅。这样比较正规。到达率比较高。
发送附件
邮件成功了,现在试试发送附件。可以多个附件,后面来个
以下是完整代码, 第一行定义 utf-8 一定不能漏了。
# -*- coding:utf-8 -*-
import requests
url="https://sendcloud.sohu.com/webapi/mail.send.xml"
files={"file1": ("1.PNG", open("/Users/mofu/git/1.PNG", "rb")),
"file2": ("2.txt", open("/Users/mofu/git/2.txt", "rb"))}
params = {"api_user": "quanziappfajian",
"api_key" : "lfpMRYSMpeUINWRC",
"to" : "zfl6439@icloud.com",
"from" : "4950238@qq.com",
"fromname" : "圈子团队",
"subject" : "邀请您测试「圈子」APP",
"html": "正文是这个样子的"}
r = requests.post(url, files=files, data=params)
print r.text
成功。
传入 邮件列表—批量发送
之前我们通过爬虫,爬到了很多的 QQ 邮箱。
现在我们需要把 QQ 邮箱传入收件人列表,然后再依次执行。
我的想法是这样的,如果一次把所有的收件人都传进去,一次性发送,看起来像是群发,给人的感觉不够好。
所有我觉得做一个循环,一个一个的传入或者10个内传入一次。这样效率可能会低一点,但是看起来会比较好。
完整代码
#!/usr/bin/python
#coding:utf-
import requests
from xuexi_email import *
def send_email(email_adresse):
url="https://sendcloud.sohu.com/webapi/mail.send.xml"
# files={"file1": ("1.PNG", open("/Users/mofu/git/1.PNG", "rb")),
# "file2": ("2.txt", open("/Users/mofu/git/2.txt", "rb"))}
params = {"api_user": "quanziappfajian",
"api_key" : "lfpMRYSMpeUINWRC",
"to" : email_adresse,
"from" : "4950238@qq.com",
"fromname" : "圈子团队",
"subject" : "批量发送4",
"html": "正文是这个样子的"}
# 发送带附件的
# r = requests.post(url, files=files, data=params)
# 发送不带附件的
r = requests.post(url, data=params)
print r.text
print email_adresse,'发送成功'
def main():
for i in range(0,4): #定义一个 range ,然后 列出 0 1 2 3
send_email(email_adresse[i]) # 传入 email_adresse 的 第 0 1 2 3 的邮箱
if __name__ == '__main__':
main()
邮件列表
企业邮箱收不到,其他的收到了
# encoding = utf-8
email_adresse = ['zf20@126.com','bdfbs@duodian.com','sdfas@gmail.com','sdfs@duodian.com']