微信公众号开发--善忘影视(八)
在善忘影视公众号中,搜索到自己想找到的电影列表, 点击列表中的任何一条,都会跳转到电影的详情页,详细描述了电影的相关元数据信息。在详情页的最下方,有一个发送邮件的功能。或许您觉得没什么用,但是在某些时候,需要电脑下载的,而不是直接用手机下载的话,还是挺有用的。我自己就经常看到好看的电影, 就直接发到我自己的邮箱里面,在电脑上打开邮箱的时候,直接点击迅雷下载就好了。如下图,只要按直接在输入框里面输入邮箱地址,点击确定,就会发送到您的邮箱了。
原来想着做一个漂亮的邮箱模板, 发送到邮箱里面的,奈何太多邮箱类型,根本就不支持这种html语法,导致了最后简化功能,只能使用最简单的图片,加下载链接的方式来简单处理了,发个邮件看上去简单,实际上需要掌握的东西还挺多的。如下图,收到邮箱信息大概就是这么样子
下面我详细的讲解一下我做这个功能的需要注意的地方。
1.发送邮件的发件人统一使用了善忘影视的名称
这一点的话,只需要在发送邮件(commons-email)的时候,设置发件人信息为中文字符,并设置编码就好了。如下面代码email.setFrom(key, value,“GBK”);
Iterator<String> it1 = from.keySet().iterator();
while (it1.hasNext()) {
String key = it1.next();
String value = from.get(key);
email.setFrom(key, value,“GBK”);
}
2.发送内容
先定义一个发送的模板,然后把要发送的内容替换模板的关键字就好了,下面就是我做的最简单的模板,发送的时候, 替换中间的关键字内容,就可以了。原来打算发送详细的内容,但是有些内容里面html标签,邮件不支持, 就放弃了。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=“http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”/>
<title>善忘影视</title>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”/>
<style>
img {
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
a img {
border: none;
}
</style>
</head>
<body style=“margin: 0; padding: 0;”>
<table border=“0” cellpadding=“0” cellspacing=“0” width=“100%”>
<tr>
<td>
<table align=“center” border=“0” cellpadding=“0” cellspacing=“0” width=“600”
style=“border-collapse: collapse;”>
<tr>
<td>#mc.title#<br />
发布时间:#mc.pubTime#
</td>
</tr>
<tr>
<td>#mc.content#</td>
</tr>
<tr>
<td><br />下载地址:<br /> #downlinks#</td>
</tr>
<tr>
<td>网址链接(有些邮件屏蔽下载链接,请点击):<br /> #sourceUrl#</td>
</tr>
</table>
</td></tr>
</table>
</body>
</html>
3.发送大量的邮件
用户增长了,发送邮件比较多的时候,一个发件箱已经无法使用了,如5分钟内容,发送超过了30封的邮件,基本上邮件服务器都会自动返回错误了,发送频率太高了。
我这里的解决方法是直接使用自己的域名,如阿里云的域名里面能申请最多的200个账号,还是免费的,虽然空间比较小, 但是不需要多少空间,可以使用批量导入excel的方式批量生成账号。然后在发送邮件的时候,随机来选择发送的邮箱账号。这样的话,能缓解一下发送邮件频率过高的问题。我只用了50个, 感觉用户量小没有必要设置那么多,记住管理账号设置每个账号都开通smtp的功能。发送邮件才能成功。