您的位置:首页 > 编程语言 > Java开发

java邮件开发--心得3-第一个java mail

2013-01-23 18:32 381 查看
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);

}

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: