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

10 篇文章 0 订阅
7 篇文章 0 订阅

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);
		

	}

}


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值