Java 邮件发送服务
Java邮件发送的例子,网上一搜能搜一大把。很多好的例子是值得学习和借鉴的。前段时间研究了一些关于邮件的发送的功能,参考网上的一些资料,自己也试着做了一个邮件发送的小工具。现在将邮件发送的核心代码贴出来和大伙分享。
package com.test.mail; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; public class MailDemo { private static final String EMAILLOGIN = "邮箱地址"; private static final String EMAILPASSWORD = "邮箱密码"; private static final String EMAILSMTP = "smtp.qq.com"; private static final String NICKNAME = "青年工作室"; static Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(EMAILLOGIN, EMAILPASSWORD); } }; public static void main(String[] args) { sendEmailQuickly(); } public static void sendEmailQuickly(){ // 创建一个属性对象 Properties props = new Properties(); //指定SMTP服务器地址 props.put("mail.smtp.host", EMAILSMTP); //指定是否需要SMTP验证 props.put("mail.smtp.auth", "true"); props.put("mail.from", EMAILLOGIN); // 创建会话,将Properties配置内容放入Session中 Session session = Session.getInstance(props); try { // 创建一个Message对象 MimeMessage msg = new MimeMessage(session); // 设置邮件发件人(发送人昵称<发送人邮件地址>) msg.setFrom(new InternetAddress(MimeUtility.encodeText(NICKNAME)+"<"+EMAILLOGIN+">")); // 设置邮件发送时间 msg.setSentDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-09-16 16:12:00")); // 设置邮件收件人 msg.setRecipients(Message.RecipientType.TO, "收件人邮箱地址"); // 设置邮件的主题 msg.setSubject("JavaMail 测试邮件"); // 设置邮件的内容(超文本形式) msg.setContent("Hello, world!<br/>这是一封测试的邮件。<br/>来自KerryPak<br/><span style='color:#ccc'>此信为系统邮件,请不要直接回复。</span>","text/html;charset=utf-8"); //设置邮件内容(文本形式) // msg.setText("Hello, world!\n这是一封测试的邮件。\n此信为系统邮件,请不要直接回复。\n来自KerryPak"); //指定邮件的优先级 1:紧急 3:普通 5:缓慢 msg.setHeader("X-Priority", "3"); //创建一个传输对象 Transport trans=session.getTransport("smtp");//协议 //连接SMTP服务器 trans.connect("smtp.qq.com",EMAILLOGIN, EMAILPASSWORD);//这里是发件人的邮箱用户名和密码(我的密码就先隐藏啦) trans.sendMessage(msg,msg.getAllRecipients()); trans.close(); } catch (MessagingException mex) { System.out.println("send failed, exception: " + mex); } catch (ParseException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }
当然咯,邮件的发送方法有很多,我写的这只是其中一种。 我写的这个多多少少和网上的有些出入,但是基本实现的方式大体上类同,只需要你在使用的时候稍稍的改造封装就可以了。
Java邮件发送依赖的工具Jar包是 javax.mail.jar ,没有这个包的朋友可以百度或者直接M我;如果有使用Maven的朋友们可以使用我贴出来的dependency。
<!-- 邮件服务支撑包 --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.4</version> </dependency>
从百度点进来的,支持一下
你这主题,浓浓的cnblog即视感,Java风格~
哈哈~~~~