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

1.  java mail介绍

java邮件开发--心得3-第一个java mail_第1张图片

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("[email protected]"));

		// 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(
				"[email protected]") });
		// transport.send(msg, new Address[]{new
		// InternetAddress("[email protected]")});

		// 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("[email protected]"));
		msg.setSubject("中文主题");
		//这里用InternetAddress.parse()方法与前面案例用到的new Address[] {}达到的效果一样,parse()可以传入多个参数返回一个InternetAddress型的数组
		msg.setRecipients(RecipientType.TO,InternetAddress.parse("[email protected],[email protected]"));
		msg.setContent("<span style='color:red'>你傻啊!</span>","text/html;charset=UTF-8");
		Transport.send(msg);
		

	}

}


 

你可能感兴趣的:(java,java,java,javamail,javamail,javamail,javamail,Java邮件开发,杨凯专属频道,面试项目)