java mail session用法_转载javamail1.4使用实例

首先准备工作,我们得获取到javaMail1.4 的 jar

包 下载地址为:http://java.sun.com/products/javamail/downloads/index.html 这是最新的版本

1.4 版。 光有这个还不够,javaMail 发送邮件还需要依赖一个JavaBeans Activation Framework

来支持任意数据块的输入及相应处理。功能似乎不多,但目前许多浏览器和邮件工具中都能找到这种基本的 MIME

型支持。下载地址为:http://java.sun.com/products/archive/javabeans/jaf102.html 版本是1.0.2

,解压activation.jar 与 mail.jar

放到你程序的类路径之中,现在我们所有的准备工作就算是完事了。

javaMail1.4

想正确发送邮件,它会让我们去编写一个 发送服务器的验证类去继承Authenticator这个验证,下面给大家一个我写的例子,

package cn.CCmingzhou.mail;

import javax.mail.PasswordAuthentication;

import javax.mail.Authenticator;

public class Authentic extends Authenticator {

public

Authentic() {

}

public

Authentic(String name,String password)

{

this.setUsername(name);

this.setPwd(password);

}

//这里是我重载的构造方法,你也可以不去重载它,但是这样写会有一定的灵活性

private

String username =

"hackq"; //大多数是你邮件@前面的部分

private

String pwd =

"*******"; //这里的username 是你要发送邮箱的帐号比如说我要用我的hackq@163.com 这

//去往外发 那么你这里的username就填写 hackq 也就是说你@前面的部分

//pwd就是你发送邮箱的密码啦,这里还没有涉及到收件箱的 别急在下边

protected

PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(getUsername(), getPwd());

}

//看到了吧protected PasswordAuthentication

getPasswordAuthentication()这个方法是最重要的了,我们发送

//邮件的时候就要靠它去验证我们的发送邮件服务器了

//下面的get()和set() 不是必须的,可以不写,写了可以增加程序的灵活性

public

String getUsername() {

return username;

}

public void

setUsername(String username) {

this.username = username;

}

public

String getPwd() {

return pwd;

}

public void

setPwd(String pwd) {

this.pwd = pwd;

}

}

验证的类我们写完,下面写邮件的发送类

package cn.CCmingzhou.mail;

import javax.mail.*;

import javax.mail.internet.*;

import java.io.*;

import java.util.*;

import cn.CCmingzhou.mail.Authentic;

//注意这里的引用类 要把我们刚才写的那个Authentic 验证类引进来

public class Mail {

public

Mail() {

}

public void

sendMsg(String mailAddress,String title,String content)

{

boolean sessionDebug = false;

InternetAddress[] address = null; try {

// 设定所要用的Mail 服务器和所使用的传输协议

java.util.Properties props = System.getProperties();

props.put("mail.host","smtp.163.com");

//这里是我们是用的 smtp

props.put("mail.transport.protocol","smtp");

props.put("mail.smtp.auth", "true");

// 产生新的Session 服务

Authentic auth = new Authentic(); //看到没,这里我们就用到验证类了 注意我这里是创建的空参的构造方法 因为我在Authentic类里已经给了默认

//值 也就是username=“hackq” pwd=“******”这里的****替换成你邮箱的密码

Session mailSession = Session.getDefaultInstance(props,

auth);

mailSession.setDebug(sessionDebug);

Message msg = new

MimeMessage(mailSession); // 设定传送邮件的发信人

msg.setFrom(new InternetAddress("hackq@163.com"));

// 设定传送邮件至收信人的信箱

address = InternetAddress.parse(mailAddress,false);

msg.setRecipients(Message.RecipientType.TO, address);

// 设定信中的主题 msg.setSubject(title);

// 设定送信的时间

//msg.setSentDate(new Date());

msg.setDataHandler(new

javax.activation.DataHandler("love","text/html"));

//这里要注意一下activation用到它了吧 也就是说我们可以发送超文本的邮件 html格式 “love”参数你可以随

//便指定为任意字符串

// 设定传送信的MIME Type

// 送信

msg.setContent(content,"text/html;charset=gb2312");

//content 是你要发送的内容 也就是你调用sendMsg(String mailAddress,String

title,String content)传

//进来的的值

Transport.send(msg);

//out.println("邮件已顺利传送");

}

catch (MessagingException mex) {

mex.printStackTrace();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值