java邮件开发--心得3-第一个java mail
1. java mail介绍
2. jaf介绍
3. 第一个: javaMail 实例分析
package com.csdn.itcast; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class Demo1 { /** * @param args * @throws MessagingException * @throws AddressException * * 开发时提示找不到某些驱动的事,要看看是不是忘了导入某些包 */ public static void main(String[] args) throws AddressException, MessagingException { // 5.实例化session的时候需要传入一个props属性 Properties props = new Properties(); // 设置登录的认证方式 props.setProperty("mail.smtp.auth", "true"); // 设置传输协议 props.setProperty("mail.transport.protocol", "smtp"); // 4.创建卫星的时候需要传入一个session Session session = Session.getInstance(props); session.setDebug(true); // 1.创建message信息,好比创建卫星;mimeMessage是message的子类,因为message是抽象类,所以这里实例化它的子类 Message msg = new MimeMessage(session); // 设置邮件的内容和发件人,注意:这里发件人是设置的,固你可以随意填写发件人邮箱,假的都无所谓 msg.setText("你好!!"); msg.setFrom(new InternetAddress("yang@163.com")); // 2.创建发送邮件的工具,好比创建火箭 Transport transport = session.getTransport(); transport.connect("smtp.sina.com", 25, "itcast_test", "123456"); /* * 3.用火箭发射卫星;sendMessage()方法是Transport的对象调用的方法,send()则是Transport直接调用的方法,即静态方法 * ; 后者是把transport连接融合一块的方法,适合发送一条邮件的情况,因为如果发送多条会设置多个重复连接;而前者则相反 */ transport.sendMessage(msg, new Address[] { new InternetAddress( "itcast_test@sohu.com") }); // transport.send(msg, new Address[]{new // InternetAddress("itcast_test@sohu.com")}); // 6.关闭资源 transport.close(); } } 4.第二个:复杂一点的案例 package com.csdn.itcast; import java.util.Properties; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.Message; 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.MimeMessage.RecipientType; import javax.mail.search.ReceivedDateTerm; public class Demo2 { /** * @param args */ public static void main(String[] args) throws Exception{ Properties props = new Properties(); props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.host", "smtp.sina.com"); //下面用策略模式编写:这里在创建session的时候直接传入一个面对信息反馈器(new 一个Authenticator匿名内部类),来设置登录名和登录密码 Session session = Session.getInstance(props,new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("itcast_test","123456"); } }); session.setDebug(true); Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress("itcast_xxx@sina.com")); msg.setSubject("中文主题"); //这里用InternetAddress.parse()方法与前面案例用到的new Address[] {}达到的效果一样,parse()可以传入多个参数返回一个InternetAddress型的数组 msg.setRecipients(RecipientType.TO,InternetAddress.parse("itcast_test@sina.com,itcast_test@sohu.com")); msg.setContent("<span style='color:red'>你傻啊!</span>","text/html;charset=UTF-8"); Transport.send(msg); } }