Java发送邮件示例讲解

Java发送邮件示例讲解

本文实例讲解了java发邮件的详细过程,供大家参考,具体内容如下

1、邮件协议

发邮件的:SMTP (Simple Mail Transport  Protocal)

收邮件的协议:pop3 (Post Office Protocal 3)

IMAP 新协议 发邮件也可以收邮件。

(一步步的与服务器交互)

SMTP :

2、收发邮件的过程:

一般情况下,smtp和pop3是两个服务器(主机)。

Smtp邮件的端口为25。

POP3 端口 为110。

发邮件示例

1)、安装foxmail:

2)、发邮件时,要对用户名和密码进行base64编码

//对用户名和密码进行base64编码

@Test

public void base64(){

String name = "wj_leaf12345";

String pwd = "1qaz2wsx";

BASE64Encoder en = new BASE64Encoder();

name = en.encode(name.getBytes());

pwd = en.encode(pwd.getBytes());

System.err.println(name);

System.err.println(pwd);}

3)、通过java代码发邮件

用java发邮件,必须要导入新的包

mail.jar – 发邮件的核心包

activation.jar – 对用户和密码加密.

在mail.jar中有三个核心类:

&http://nbsp;   Javax.mail.Session – 是指与邮件服务器会话。整个项目中只要一个就可以了.

Javax.mail.Message(接口) —准备发送数据信息。

MimeMessage - 可以设置类型的数据信息。

Transport – 它拥有一个方法可以发送Message。

第一步:导入两个jar包

第二步:发简单的邮件

public void sendMail() throws Exception{

//第一步:声明properties对象放信息

Properties prop = new Properties();

//设置连接哪一台服务器

prop.setProperty("mail.host","smtp.126.com");

//设置是否验证

prop.setProperty("mail.smtp.auth", "true");

//第二步:声明用户名和密码

Authenticator auth = new Authenticator() {

//此访求返回用户和密码的对象

public PasswordAuthentication getPasswordAuthentication() {

PasswordAuthentication pa =

new PasswordAuthentication("aaa", "sss");

return pa;}};

第二步:获取Session对象

Session session =

Session.getDefaultInstance(prop,auth);

//设置session的调试模式

session.setDebug(true);

//第三步:声明信息

MimeMessage mm1 =

new MimeMessage(session);

//第四步:设置发件人email

Address from = new InternetAddress("wj@126.com");

mm1.setFrom(from);

//第五步:设置收件人

mm1.setRecipient(RecipientType.TO,new InternetAddress("wj@163.com"));

mm1.setRecipient(RecipientType.CC, new InternetAddress("554@qq.com"));

mm1.setRecipient(RecipientType.BCC, new InternetAddress("wj@ss.cn"));

//第六步:设置主题

mm1.setSubject("这是用Java发的邮件3");

mm1.setContent("你好,这是用java发的邮件,3333再试一下", "text/plain;charset=UTF-8");

//第七步:

Transport.send(mm1);}

第三步:v发带有超连接的邮件

mm1.setSubject("这是用Java发的邮件sfasdf3");

mm1.setContent("你好,这是用java发的邮件,百度", "text/html;charset=UTF-8" );

//第七步:

Transport.send(mm1);

第四步:符件的邮件

public void sendFile() throws Exception{

Properties p = new Properties();

p.setProperty("mail.host","smtp.163.com");

p.setProperty("mail.smtp.auth","true");

Session s = Session.getDefaultInstance(p,new Authenticator() {

@Override

public PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication("ww", "123");}

});

s.setDebug(true);

//声明MimeMessage

MimeMessage msg = new MimeMessage(s);

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

msg.setRecipient(RecipientType.TO, new InternetAddress("ww@126.com"));

msg.setSubject("图片的");

//第一步:声明多处理的Part

MimeMultipart mm = new MimeMultipart();

//第二步:声明

MimeBodyPart body1 = new MimeBodyPart();

//第三步:设置符件

DataSource ds = new FileDataSource(new File("./img/a.jpg"));

DataHandler dh = new DataHandler(ds);

body1.setDataHandler(dh);

//必须要设置名称

body1.setFileName(MimeUtility.encodeText("美女.jpg"));

MimeBodyPart body2 = new MimeBodyPart();

//第三步:设置符件

DataSource ds2 = new FileDataSource(new File("./img/b.jpg"));

DataHandler dh2 = new DataHandler(ds2);

body2.setDataHandler(dh2);

//必须要设置名称

body2.setFileName(MimeUtility.encodeText("美女2.jpg"));

MimeBodyPart body3 = new MimeBodyPart();

//第三步:设置符件

DataSource ds3 = new FileDataSource(new File("./img/m.mp3"));

DataHandler dh3 = new DataHandler(ds3);

body3.setDataHandler(dh3);

//必须要设置名称

body3.setFileName(MimeUtility.encodeText("世纪末.mp3"));

//将body1添加到mm

mm.addBodyPart(body1);

mm.addBodyPart(body2);

mm.addBodyPart(body3);

msg.setContent(mm);

//发送

Transport.send(msg);}

以上就是本文的全部内容,希望对大家的学习有所帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值