java发送邮件示例讲解
程序员文章站
2024-03-09 17:14:05
本文实例讲解了java发邮件的详细过程,供大家参考,具体内容如下
1、邮件协议
发邮件的:smtp (simple mail transport proto...
本文实例讲解了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中有三个核心类:
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发的邮件,<a href='http://www.baidu.com'>百度</a>", "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); }
以上就是本文的全部内容,希望对大家的学习有所帮助。
上一篇: 使用.NET命令行编译器编译项目(如ASP.NET、C#等)
下一篇: Java中的迭代和递归详解