SMTP对接发送
对接发送
通过标准的SMTP协议,轻松将邮件推送到群发平台
SMTP对接信息:
SMTP服务器: smtp.bestedm.net
端口: 25/2525 (两个端口效果一样,都是非SSL端口,某些云服务器禁用了25端口,可以用2525代替)
465(SSL端口)
SMTP账号/密码: 在群发管理后台创建 (此账号/密码跟平台其他API接口使用的是不一样的,API接口使用的是登录群发管理后台的账号/密码)
python代码示例:
import smtplib
host = "smtp.bestedm.net" #SMTP服务器
port = 25 #SMTP端口
user = "user@bestedm.net" #邮箱账号
pwd = "password" #邮箱密码
mailto = ["umail@test.com"] #收件人
#邮件内容
msg = """From:user@bestedm.net
To:umail@test.com
Subject: test
this is a test email from umail"""
smtp = smtplib.SMTP()
smtp.set_debuglevel(1) #调试时可开启debug
smtp.connect(host, port) #连接SMTP服务器
smtp.login(user, pwd) #进行登录认证
smtp.sendmail(user, mailto, msg) #发送邮件
smtp.close()
备注说明:
1. smtp对接失败参考文档:(邮件客户端\SMTP对接程序)发送失败信息说明
2. 目前平台不支持获取具体每一封的邮件发送详情,平台的发送统计都是以任务批次的形式获取,具体参考接口:获取发送统计信息
3. smtp发送,系统默认定义一天为一个任务批次,当然您也可以通过邮件头来自定义任务批次,具体参考: 自定义任务批次
4. smtp发送支持跟踪统计,具体参考: SMTP跟踪统计
自定义任务批次
您可以自定义一批SMTP邮件为一个任务批次,如果没有,系统会自动生成一个,每天的SMTP邮件为一个批次
自定义批次方法:
将“任务识别码”加入到邮件的“Message-Id”中;“群发任务识别码”的生成规则为<xxxxxx-{T:任务识别码}-xxxxxx>,其中xxx是您自定义,没有特殊含义的。
例如有一个任务识别码为“20120203_001”的邮件任务,其邮件头的“Message-Id”部分如下所示:
...
Message-Id: <20120202163547-{T:20120203_001}-umail@test.com>
...
特别注意:
Java设置MessageId时,经常出现无效设置,设置方法请参考java发送邮件设置邮件头的MessageId
SMTP跟踪统计
如果要对SMTP发送进行打开/点击统计,必须完成以下两个步骤
1. 添加跟踪域名(必选)
在网页上按配置添加相应的跟踪域名
https://www.bestedm.net/core/domain
2. 添加邮件头标志
添加邮件头“Umail-Track”通知Umail是否加跟踪链接,值为 Open 或 Click
Open: 只加打开统计
Click: 同时加 打开和点击 统计
...
Umail-Track:Click
...
备注说明:
1. 跟踪统计报告跟发送详情一样,都是以任务批次的形式获取,具体接口参考:获取跟踪统计信息
2. 跟发送统计一样,系统默认定义一天为一个任务批次,您也可以通过邮件头来自定义任务批次,具体参考: 自定义任务批次
一个完整的发送案例
以下是一个完整的python发送案例,自定义任务批次,且加上跟踪统计
#!/usr/bin/python
#coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr
host = "smtp.bestedm.net" #SMTP服务器
port = 25 #SMTP端口
user = "user@bestedm.net" #邮箱账号
pwd = "password" #邮箱密码
mailto = "umail@test.com" #收件人
#邮件内容
mail_msg = """
<p>Umail邮件发送测试...</p>
<p><a href="https://www.bestedm.net">Umail邮件群发</a></p>
"""
msg = MIMEText(mail_msg, 'html', 'utf-8')
msg['From'] = formataddr([Header("EDM群发",'utf-8').encode(), user]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To'] = formataddr([Header("收件人",'utf-8').encode(), mailto]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject'] = Header("这是一封来自umail的邮件测", 'utf-8') # 邮件的主题,
msg['Message-Id'] = "<20120202163547-{T:20120203_001}-umail@test.com>" # 自定义任务批次
msg['Umail-Track'] = "Click" # 加上跟踪统计
msg['Reply-to'] = "reply@test.com" # 指定回复地址
try:
smtp = smtplib.SMTP()
smtp.set_debuglevel(1) #调试时可开启debug
smtp.connect(host, port) #连接SMTP服务器
smtp.login(user, pwd) #进行登录认证
smtp.sendmail(user, mailto, msg.as_string()) #发送邮件
smtp.close()
print "邮件发送成功"
except smtplib.SMTPException:
print "Error: 无法发送邮件"