详细教程:
http://www.sendcloud.net/doc/email/code/#python
https://www.sendcloud.net/doc/email/send_email/#_2
要设置一个模板

python2.7

Sendcloud 提供发邮件的 API。
我们通过python 调用这个 API 来发送邮件。

  1. 打开SendCloud地址 ,注册,然后实名认证。付费,最少59元。
  1. 发送设置里面加一个域名,然后按照说明解析。20171128151183880112073.png
  1. 创建一个 API User20171128151183886244588.png
    创建完成后,会得到一个 API_USER 和一个 API_KEY

这个会用到我们的脚本里

测试API_USER

http://sendcloud.sohu.com/doc/email/user_info/#api_user
把 API_USER 和 KEY 替换掉星号就可以了。

  1. http://sendcloud.sohu.com/webapi/userinfo.get.json?api_user=***&api_key=***

返回结果
20171128151184092423652.png

完整代码

转载自 http://xiaorui.cc/2014/11/12/调用sendcloud接口实现邮件推送收取python/

  1. # -*- coding:utf-8 -*-
  2. import smtplib
  3. import json
  4. from email import Encoders
  5. from email.mime.base import MIMEBase
  6. from email.mime.multipart import MIMEMultipart
  7. from email.mime.text import MIMEText
  8. from email.header import Header
  9. fromEmail = 'send@qq.com' # 用正确邮件地址替代
  10. toEmail=['ssd2@icloud.com','490238@qq.com'] # 用正确邮件地址替代收件人地址
  11. msg = MIMEMultipart('alternative')
  12. msg['Subject'] = "邮件标题"
  13. msg['From'] = fromEmail #调用发件人
  14. msg['To'] = ', '.join(toEmail) #调用收件人
  15. html = """<html><head></head><body><p>Hi! -name-<br>hello world!!!</p></body></html>"""
  16. part = MIMEText(html, 'html')
  17. msg.attach(part)
  18. #不同于登录SendCloud站点的帐号,您需要登录后台创建发信子帐号,使用子帐号和密码才可以进行邮件的发送。
  19. username = 'quanziappfajian' #API_USER
  20. password = 'xxxxxxxxxxxx' #API_KEY
  21. s = smtplib.SMTP('smtpcloud.sohu.com:25')
  22. s.login(username, password)
  23. s.sendmail(fromEmail, toEmail, msg.as_string())
  24. s.quit()

测试完成已经收到了邮件。
20171128151183932490966.png
用 send cloud 的好处就是,他自带签名,还有取消订阅。这样比较正规。到达率比较高。

发送附件

邮件成功了,现在试试发送附件。可以多个附件,后面来个
以下是完整代码, 第一行定义 utf-8 一定不能漏了。

  1. # -*- coding:utf-8 -*-
  2. import requests
  3. url="https://sendcloud.sohu.com/webapi/mail.send.xml"
  4. files={"file1": ("1.PNG", open("/Users/mofu/git/1.PNG", "rb")),
  5. "file2": ("2.txt", open("/Users/mofu/git/2.txt", "rb"))}
  6. params = {"api_user": "quanziappfajian",
  7. "api_key" : "lfpMRYSMpeUINWRC",
  8. "to" : "zfl6439@icloud.com",
  9. "from" : "4950238@qq.com",
  10. "fromname" : "圈子团队",
  11. "subject" : "邀请您测试「圈子」APP",
  12. "html": "正文是这个样子的"}
  13. r = requests.post(url, files=files, data=params)
  14. print r.text

成功。
20171128151184097365221.png

传入 邮件列表—批量发送

之前我们通过爬虫,爬到了很多的 QQ 邮箱。
现在我们需要把 QQ 邮箱传入收件人列表,然后再依次执行。
我的想法是这样的,如果一次把所有的收件人都传进去,一次性发送,看起来像是群发,给人的感觉不够好。
所有我觉得做一个循环,一个一个的传入或者10个内传入一次。这样效率可能会低一点,但是看起来会比较好。

完整代码

  1. #!/usr/bin/python
  2. #coding:utf-
  3. import requests
  4. from xuexi_email import *
  5. def send_email(email_adresse):
  6. url="https://sendcloud.sohu.com/webapi/mail.send.xml"
  7. # files={"file1": ("1.PNG", open("/Users/mofu/git/1.PNG", "rb")),
  8. # "file2": ("2.txt", open("/Users/mofu/git/2.txt", "rb"))}
  9. params = {"api_user": "quanziappfajian",
  10. "api_key" : "lfpMRYSMpeUINWRC",
  11. "to" : email_adresse,
  12. "from" : "4950238@qq.com",
  13. "fromname" : "圈子团队",
  14. "subject" : "批量发送4",
  15. "html": "正文是这个样子的"}
  16. # 发送带附件的
  17. # r = requests.post(url, files=files, data=params)
  18. # 发送不带附件的
  19. r = requests.post(url, data=params)
  20. print r.text
  21. print email_adresse,'发送成功'
  22. def main():
  23. for i in range(0,4): #定义一个 range ,然后 列出 0 1 2 3
  24. send_email(email_adresse[i]) # 传入 email_adresse 的 第 0 1 2 3 的邮箱
  25. if __name__ == '__main__':
  26. main()

邮件列表
企业邮箱收不到,其他的收到了

  1. # encoding = utf-8
  2. email_adresse = ['zf20@126.com','bdfbs@duodian.com','sdfas@gmail.com','sdfs@duodian.com']