一、背景
最近重做API,之前的邮件使用模版,而且代码都不知道那,我只知道模版的样式,昨天老大才说新的API要支持邮件注册等几个新功能,所以今天就花时间做了下邮件注册,但是没想到掉坑了,而且是很简单的坑,首先我们要可以发出邮件,其次,发出的邮件中可以点击链接进行激活操作。下面说说重点了。
二、邮件发送
邮件发送我使用的jodd,一个非常强大的东西,可以看看其系列包的功能,这里我就先说jodd-mail的邮件发送功能
<dependency>
<groupId>org.jodd</groupId>
<artifactId>jodd-mail</artifactId>
<version>3.7.1</version>
</dependency>
pom中引入上面这个包
邮件发送代码如下
我的是企业邮箱,所以**为企业邮箱后缀,如果你使用QQ发送,那么**就是qq,完整就是smtp.qq.com
private static final String EMAIL_OWNER_ADDR_HOST = "smtp.**.com";
public static void sendEmail(){
//String html = html(url);
Email email = Email.create().from(EMAIL_OWNER_ADDR).to(toEmail).subject(" 注
册").addHtml("<h1>你好!!!</h1>");
SmtpServer smtpServer = SmtpSslServer.create(EMAIL_OWNER_ADDR_HOST).
authenticateWith(EMAIL_OWNER_ADDR, EMAIL_OWNER_ADDR_PASS);
SendMailSession session = smtpServer.createSession();
session.open();
session.sendMail(email);
session.close();
}
上面EMAIL_OWNER_ADDR就是要使用的发送邮件帐号,EMAIL_OWNER_ADDR_PASS为发送邮件帐号的密码。
基本上按照上面的方式就可以发送邮件了,但是这里强调一点的就是
这里的host就是自己使用的发送host,我们使用的是腾讯企业邮箱,所以
host为:stmp.mouse.com;使用QQ邮箱发送,那么host就为
stmp.mouse.com
三:以html形式发送
因为是要点击可以激活,所以需要使用html的方式拼凑数据
找到一种比较好的方式,那就是先在html里面把页面布局排版写好,然后直接复制到http://www.css88.com/tool/html2js/这里进行转换
所以转换后的就可以直接复制到页面中使用了。 我的操作后如下
public static String html(String url){
String str = "<div>"+
" <p style=\"line-height: 2em; font-size: 16px;\">"+
" <span>亲爱的用户,欢迎加入XXX!</span>"+
" <br>"+
" </p>"+
" <p style=\"font-size: 12px;\">"+
" <br>"+
" <span style=\"margin-left:34px;\">"+
" 请在24小时内激活账号。"+
" </span>"+
" <br>"+
" <br>"+
" <a style=\"margin-left:102px;\" href='"+url+"' target=\"_blank\">"+
" 立即激活账号"+
" </a>"+
" <br>"+
" <br>"+
" <span style=\"margin-left:34px;\">"+
" 如果以上按钮无法打开,请把下面的链接复制到浏览器地址栏中打开:"+
" <a href='"+url+"' target=\"_blank\">"+url+"</a></span>"+
" </p>"+
" <p style=\"line-height: 2em; font-size: 12px;text-align:right;margin-right:20px;\">"+
" <span>咨询热线:<span style=\"border-bottom:1px dashed #ccc;z-index:1\" t=\"7\" onclick=\"return false;\" data=\"888888888\">888888888/span></span>"+
" <br>"+
" <span>网址:<a href=\"http://www.baidu.com\" target=\"_blank\">www.baidu.com</a></span>"+
" </p>"+
" </div>";
return str;
}
这里还没玩,上面的链接部分才是重点,点击激活的链接,这里坑我好一会,如果你只写比如"www.baidu.com",那么你在发送出去的页面是没有中a标签中是没有href的,也就是说你点击链接是点击不了的,所以最后才发现,是因为没有加http://在前面,所以如下才是正确
<a href = '"+url+"' target="_blank"></a>,tartget代表点击跳转到新的页面。
其中url传入形如"http://www.baidu.com"形式,切记加http://
很多问题都是慢慢发现的,慢慢解决,但是就是在某些时候需要去踩一些。切记切记!!!
四:浩语
__
__ _ ____ __| |__ _____ ___
\ \/ \/ / | \ | \\__ \ / _ \
\ /| | / Y \/ __ \( <_> )
\/\_/ |____/|___| (____ /\____/
\/ \/
2016,To Work Hard,To Adapter,To Change Myself!!!