使用 javamail 做邮箱验证功能
来源:互联网 发布:韩国女子组合知乎 编辑:程序博客网 时间:2024/06/05 11:32
在自己最近做的一个小项目中使用了注册时邮箱验证激活的功能,第一次接触到了 javaMail,以前只是知道有这个东西,却从来没有用过,这次正好有机会,便去大致的看了一些 demo,完成了自己这个邮箱验证激活的功能,现在只是简单会用,以后还是要深入学习,先在这儿记录一下 javaMail 简单的使用。
javaMail 是 sun 公司提供的实现邮件发送和接收功能的一套标准开发类库,支持常用的邮件协议,如 smtp、pop3、imap,使用 javamail 开发邮件程序无需考虑底层Socket通信的细节,并且支持创建各种复杂 MIME 格式的邮件。
首先需要去下载 javaMail 相关的 jar ,我使用的是 javamail-1.4.7 这个,因为我只用到了简单的发邮件的功能,所以只需要将 mail.jar 这个 jar 加到classpath 下即可。
先简单来认识一下 javaMail 的一些常用类:
Session 定义了一个基本的邮件会话,任何工作都是基于这个Session的。Session 对象需要一个 java.util.Properties 对象来得到类似 邮件服务器,用户名,密码这样的信息。Session 的构造函数是私有的,可以通过 getDefaultInstance() 方法来取得一个单一的可以被共享的默认session。
一旦创建了 Session 对象,接着就要使用 Message 来发送邮件。
Message 是一个抽象类,在大部分应用中我们可以使用它的子类javax.mail.internet.MimeMessage 。如:
MimeMessage message = new MimeMessage(session);
message.setContent("Email Content. "text/plain"); //设置邮件内容
message.setSubject(" Subject "); //设置主题这里常用 Session 对象作为构造函数的参数。
Address 当创建了 Session 以及 Message,并且已经为message 填充了内容,那么接下来要做的就是给你的邮件添加一个地址(Address),我们常用的是它的子类 javax.mail.internet.InternetAddress,需要使用 Message 的msg.setFrom(new InternetAddress("你的邮箱")) 识别发送者,使用 setRecipient() 方法识别接收者。这个方法除了address参数之外,还需要一个Message.RecipientType,Message.RecipientType有几个预先定义好的类型
Message.RecipientType.TO //收件人Message.RecipientType.CC //抄送Message.RecipientType.BCC //暗送
如果需要多个收件地址,可以使用 InternetAddress[] addrs = {} 构造多个收件地址。
Authenticator 通过Authenticator设置用户名、密码,我们需要实现这个抽象类,实现getPasswordAuthentication()方法,并返回一个PasswordAuthentication实例,然后在 Session 创建时注册这个Authenticator。
Transport 发送消息的最后一步是使用 Transport,调用它的静态方法 send 来发送邮件,Transport.send(msg);
以下是主要的完整代码:
public class SendMailUtil {public static final String HOST = "smtp.163.com";public static final String PROTOCOL = "smtp";public static final int PORT = 25;public static final String SENDER = "***@163.com";//public static final String SENDERPWD = "******";/** * 获取用于发送邮件的Session * @return */public static Session getSession() {Properties props = new Properties();props.put("mail.smtp.host", HOST);//设置服务器地址 props.put("mail.store.protocol" , PROTOCOL);//设置协议 props.put("mail.smtp.port", PORT);//设置端口 props.put("mail.smtp.auth" , true); Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(SENDER, SENDERPWD); }}; Session session = Session.getDefaultInstance(props,authenticator); return session;}/** * 发送邮件 * @param receiver * @param content */public static void send(String receiver, String content) {Session session = getSession();try {System.out.println("-------开始发送-------");Message msg = new MimeMessage(session);//设置message属性msg.setFrom(new InternetAddress(SENDER));InternetAddress[] addrs = {new InternetAddress(receiver)};msg.setRecipients(Message.RecipientType.TO, addrs);msg.setSubject("yechblog-帐号激活");msg.setSentDate(new Date());msg.setContent(content,"text/html;charset=utf-8");//开始发送Transport.send(msg); System.out.println("-------发送完成-------");} catch (AddressException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}}
- 使用 javamail 做邮箱验证功能
- javamail实现邮箱验证功能
- JavaMail进行邮箱验证
- Jsoup+JavaMail实现自动投票,验证邮箱功能
- 使用javaMail进行腾讯,新浪,网易网上邮箱验证
- JavaMail实现邮箱验证码
- 使用Javamail操作QQ邮箱
- JavaMail——邮箱验证用户注册
- 通过javamail 验证邮箱是否有效
- javamail实现邮箱验证代码记录
- javamail实现邮箱验证的异常
- JavaMail实现注册邮箱验证案例
- javaMail登录并实现邮箱激活功能
- JavaMail实现简单邮箱验证——163邮箱
- Java-使用JavaMail发送一封邮件给用户邮箱功能实现
- 邮箱验证码功能实现
- javamail 邮箱
- 邮箱组件开发(使用javamail开发)
- 代码风格
- 各种排序总结(一)之--—冒泡排序、选择排序、快速排序
- 【学习之道】 Android学习资源整理
- iOS小技巧-MJRefresh简单整合
- 推荐6款常用的Java开源报表制作工具
- 使用 javamail 做邮箱验证功能
- IBAction和IBOutlet
- 基于easyui的界面扩展
- Python 多线程 threading和multiprocessing模块
- 这个得学起来!超实用的格式塔原理小科普
- UINavigationController返回前面界面的几种方法
- iOS 触摸事件、手势识别、摇晃事件、耳机线控
- 主打个性化推荐阅读的摘客,玩的是什么?
- 短线起爆点(移动均线15种战法)