SendCloud是国内最大触发邮发送平台, 旨在提供满足中小企业, 创业者需求的邮件发送服务.
面向开发同学
SendCloud的API支持Html, Java, Python, C/C++/C#, PHP, Ruby, Perl等多种开发语言, 每一种语言我们都提供了详尽的示例和文档.
下面以Python为例, 介绍如何通过API使用SendCloud:
- 注册帐号之后, 你将获得api_user和api_key
- 填写邮件的发件人, 收件人等信息, 构建发送参数params
params = { "api_user": "yourusername", \
"api_key" : "password",\
"from" : "boy@qq.com", \
"to" : "girl@qq.com", \
"fromname" : "your_boy", \
"subject" : "主题", \
"html": "正文" \
}
- 带上参数, 发起Http请求, 即可
url="https://sendcloud.sohu.com/webapi/mail.send.xml"
r = requests.post(url, data=params)
print r.text
- 发附件也是很简单, 指明附件的本地地址即可
#!/usr/bin/python
#coding:utf-8
import requests
url="https://sendcloud.sohu.com/webapi/mail.send.xml"
files={"file1": ("1.html", open("/home/doc/1.html", "rb")), \
"file2": (u"用户手册.docx", open(u"/home/doc/用户手册.docx"))}
params = { "api_user": "yourusername", \
"api_key" : "password",\
"from" : "boy@qq.com", \
"to" : "girl@qq.com", \
"fromname" : "your_boy", \
"subject" : "主题", \
"html": "正文" \
}
r = requests.post(url, files=files, data=params)
print r.text
以上是最简单的代码示例, 更多的代码示例可以看这里, 更深入的功能请看这里
面向运维同学
SendCloud支持SMTP协议的接入方式. 你既可以编写客户端(示例)来进行发信, 也可以把邮件流量直接切入SendCloud实现发信.
下面以Postfix为例, 介绍如何把邮件转发给SendCloud:
简单的说, 只需要让Postfix支持SASL验证就可以连接SendCloud了
- 注册帐号, 获得api_user和api_key
-
安装Cyrus SASL
可以到这里去下载最新的cyrus版本, 建议版本cyrus-sasl-2.1.x
# wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
# tar -zxvf cyrus-sasl-2.1.22.tar.gz
# cd cyrus-sasl-2.1.22
# ./configure --enable-login --enable-ntlm
# make && make install
- 重新编译Postfix, 使之支持SASL
# wget ftp://ftp.cuhk.edu.hk/pub/packages/mail-server\
/postfix/official/postfix-2.10.0.tar.gz
# tar -zxvf tar -zxvf postfix-2.10.0.tar.gz
# cd postfix-2.10.0
# make tidy
# make makefiles CCARGS="-DUSE_SASL_AUTH -DUSE_CYRUS_SASL \
-I/usr/local/include/sasl" AUXLIBS="-L/usr/local/lib -lsasl2"
# make install
-
配置Postfix参数
/etc/postfix/main.cf的相关配置如下:
mynetworks = 192.168.0.0/16 10.0.0.0/8 127.0.0.1/32
smtpd_relay_restrictions = permit_mynetworks, \
permit_sasl_authenticated, defer_unauth_destination
#sasl client supporting
smtp_sasl_auth_enable = yes
# relay到SendCloud的smtp服务器
relayhost = [smtpcloud.sohu.com]
# api_user和api_key
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_sasl_mechanism_filter =
/etc/postfix/sasl_passwd中配置api_user和api_key
# cd /etc/postfix/
# echo 'smtpcloud.sohu.com api_user:api_key' > /etc/postfix/sasl_passwd
# postmap sasl_passwd
# postmap -q smtpcloud.sohu.com sasl_passwd
重启Postfix服务之后, 经过此服务器的邮件就被转发给SendCloud了.
是不是很简单呢? 赶紧注册帐号来试试吧!