欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程语言 > java >内容正文

java

java使用javax.mail.jar发送邮件并同意发送附件 -凯发ag旗舰厅登录网址下载

发布时间:2025/1/21 java 12 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 java使用javax.mail.jar发送邮件并同意发送附件 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

因为java在开发网页上占有绝大优势。所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高。因此这些对于开发者也就成了必须掌握的技能!我一直都认为作为开发者,不怕在开发的过程中遇到多少难题,而是有没有去解决它的勇气和决心,这里多学习就成为了关键,成为了一个程序员发展的重中之重!好啦。闲话就讲到这里。来点实际的。

当一个开发者工作到一定程度后,面向对象的思维就会一直在他的老子里环绕。所以我们先把邮件的常量类、实体类以及工具类等等先该封装的封装,该继承的继承!代码来了。睁大眼睛:

/*** @description: ** @title: simplemail.java* @package com.joyce.bean* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 上午09:06:51* @version v2.0*/ package com.joyce.mail.bean;/*** @description:邮件信息类* * @classname: simplemail* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午09:06:51* @version v2.0*/ public class mail {/*** 主题*/private string subject;/*** 内容*/private string content;/*** @return the subject*/public string getsubject() {return subject;}/*** @param subject* the subject to set*/public void setsubject(string subject) {this.subject = subject;}/*** @return the content*/public string getcontent() {return content;}/*** @param content* the content to set*/public void setcontent(string content) {this.content = content;} }
上面大家看到的就是发送邮件一般不可缺少的邮件标题和邮件内容,作为在邮件使用广泛的那就免不了封装起来了,好啦。接下来咱们看邮箱的登录类:/*** @description: ** @title: mailauthenticator.java* @package com.joyce.bean* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 上午08:59:11* @version v2.0*/ package com.joyce.mail.bean;import javax.mail.authenticator; import javax.mail.passwordauthentication;/*** @description: 邮箱登录类** @classname: mailauthenticator* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 上午08:59:11* @version v2.0*/ public class mailauthenticator extends authenticator {/*** 用户名(登录邮箱)*/private string username;/*** 密码*/private string password;/*** @return the username*/public string getusername() {return username;}/*** @param username the username to set*/public void setusername(string username) {this.username = username;}/*** @return the password*/public string getpassword() {return password;}/*** @param password the password to set*/public void setpassword(string password) {this.password = password;}/*** @param username* @param password*/public mailauthenticator(string username, string password) {this.username = username;this.password = password;}@overrideprotected passwordauthentication getpasswordauthentication() {return new passwordauthentication(username, password);} }
这时候我们须要的常量类就应该进来了package com.joyce.mail.bean;import java.text.simpledateformat; import java.util.date;/*** @description: 邮件发送常量类** @classname: mailconstant* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 上午11:01:16* @version v2.0*/ public class mailconstant {public static final string mail_user = "luo201227@163.com"; public static final string mail_pwd = "*****";public static final boolean mail_ifdebug = true;public static final string mail_content_charset = "text/html;charset=utf-8"; public static final simpledateformat sdf = new simpledateformat("yyyy年mm月dd日 hh时mm分ss秒 e");public static final string mail_title = "*********账号激活码" sdf.format(new date());//邮件标题public static string getmailcontent(string content){stringbuffer sb = new stringbuffer();sb.append("
尊敬的用户。您好!



"); sb.append("    " content); sb.append("

"); return sb.tostring(); } }
关键来了,看看发送邮件的关键部分吧/*** @description: ** @title: mailsender.java* @package com.joyce.service.impl* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 上午09:03:08* @version v2.0*/ package com.hupu.nac.mail.sender;import java.io.file; import java.text.simpledateformat; import java.util.arraylist; import java.util.date; import java.util.list; import java.util.properties; import java.util.vector;import javax.activation.datahandler; import javax.activation.filedatasource; import javax.mail.bodypart; 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.mimebodypart; import javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart;import com.hupu.nac.mail.bean.mail; import com.hupu.nac.mail.bean.mailauthenticator; import com.hupu.nac.mail.bean.mailconstant;/*** @description:邮件发送类* * @classname: mailsender* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午09:03:08* @version v2.0*/ public class mailsender {/*** 发送邮件的props文件*/private final transient properties props = new properties();/*** 邮件server登录验证*/private transient mailauthenticator authenticator;/*** 邮箱session*/private transient session session;/*** 初始化邮件发送器* * @param smtphostname* smtp邮件server地址* @param username* 发送邮件的用户名(地址)* @param password* 发送邮件的密码*/public mailsender(final string smtphostname, final string username,final string password) {init(username, password, smtphostname);}/*** 初始化邮件发送器* * @param username* 发送邮件的用户名(地址),并以此解析smtpserver地址* @param password* 发送邮件的密码*/public mailsender(final string username, final string password) {// 通过邮箱地址解析出smtpserver。对大多数邮箱都管用final string smtphostname = "smtp." username.split("@")[1];init(username, password, smtphostname);}/*** @description: 初始化* * @param username* 发送邮件的用户名(地址)* @param password* 密码* @param smtphostname* smtp主机地址* * @title: mailsender.java* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午09:18:31* @version v2.0*/private void init(string username, string password, string smtphostname) {// 初始化propsprops.put("mail.smtp.host", smtphostname);props.put("mail.smtp.auth", "true");// 验证authenticator = new mailauthenticator(username, password);// 创建sessionsession = session.getinstance(props, authenticator);// 打印一些调试信息session.setdebug(mailconstant.mail_ifdebug);}/*** @description: 发送邮件* * @param recipient* 收件人邮箱地址* @param subject* 邮件主题* @param content* 邮件内容* @throws addressexception* @throws messagingexception* * @title: mailsender.java* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午09:19:16* @version v2.0*/public void send(string recipient, string subject, object content) throws exception {send(recipient, subject, content, null);}/*** 发送邮件* * @param recipient* 收件人邮箱地址* @param subject* 邮件主题* @param content* 邮件内容* @param files* 附件* @throws exception* @author joyce.luo* @date 2014-10-15 上午10:23:09* @version v3.0* @since tomcat6.0,jdk1.6* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014*/public void send(string recipient, string subject, object content, vector files) throws exception {// 创建mime类型邮件final mimemessage message = new mimemessage(session);// 设置发信人message.setfrom(new internetaddress(authenticator.getusername()));// 设置收件人message.setrecipient(message.recipienttype.to, new internetaddress(recipient));// 设置主题message.setsubject(subject);// 设置邮件内容if (null == files || files.size() == 0) {message.setcontent(content.tostring(), mailconstant.mail_content_charset);} else {//创建 mimemultipart加入内容(可包括多个附件)mimemultipart multipart = new mimemultipart();//mimebodypart(用于信件内容/附件)bodypart bodypart = new mimebodypart();bodypart.setcontent(content.tostring(), mailconstant.mail_content_charset);//加入到mimemultipart对象中multipart.addbodypart(bodypart);for (int i = 0; i < files.size(); i ) {file file = (file) files.elementat(i);string fname = file.getname();//创建filedatasource(用于加入附件)filedatasource fds = new filedatasource(file);bodypart filebodypart = new mimebodypart();// 字符流形式装入文件filebodypart.setdatahandler(new datahandler(fds));// 设置附件文件名称filebodypart.setfilename(fname);multipart.addbodypart(filebodypart);message.setcontent(multipart);}}// 设置发信时间message.setsentdate(new date());// 存储邮件信息message.savechanges(); // message.setfilename(filename)// 发送邮件transport.send(message);}/*** @description: 群发邮件* * @param recipients* 收件人们* @param subject* 主题* @param content* 内容* @throws addressexception* @throws messagingexception* * @title: mailsender.java* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午09:20:24* @version v2.0*/public void send(list recipients, string subject, object content) throws exception {send(recipients, subject, content, null);}/*** 群发邮件* * @param recipients* 收件人们* @param subject* 主题* @param content* 内容* @param files* 附件* @throws exception* @author joyce.luo* @date 2014-10-15 上午10:26:35* @version v3.0* @since tomcat6.0,jdk1.6* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014*/public void send(list recipients, string subject, object content, vector files) throws exception {// 创建mime类型邮件final mimemessage message = new mimemessage(session);// 设置发信人message.setfrom(new internetaddress(authenticator.getusername()));// 设置收件人们final int num = recipients.size();internetaddress[] addresses = new internetaddress[num];for (int i = 0; i < num; i ) {addresses[i] = new internetaddress(recipients.get(i));}message.setrecipients(message.recipienttype.to, addresses);// 设置主题message.setsubject(subject);// 设置邮件内容if (null == files || files.size() == 0) {message.setcontent(content.tostring(), mailconstant.mail_content_charset);} else {//创建 mimemultipart加入内容(可包括多个附件)mimemultipart multipart = new mimemultipart();//mimebodypart(用于信件内容/附件)bodypart bodypart = new mimebodypart();bodypart.setcontent(content.tostring(), mailconstant.mail_content_charset);//加入到mimemultipart对象中multipart.addbodypart(bodypart);for (int i = 0; i < files.size(); i ) {file file = (file) files.elementat(i);string fname = file.getname();//创建filedatasource(用于加入附件)filedatasource fds = new filedatasource(file);bodypart filebodypart = new mimebodypart();// 字符流形式装入文件filebodypart.setdatahandler(new datahandler(fds));// 设置附件文件名称fname = new string(fname.getbytes("utf-8"), "iso-8859-1");filebodypart.setfilename(fname);multipart.addbodypart(filebodypart);message.setcontent(multipart);}}// 设置发信时间message.setsentdate(new date());// 存储邮件信息message.savechanges();// 发送邮件transport.send(message);}/*** @description: 发送邮件* * @param recipient* 收件人邮箱地址* @param mail* 邮件对象* @throws exception* * @title: mailsender.java* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午09:20:54* @version v2.0*/public void send(string recipient, mail mail) throws exception {send(recipient, mail.getsubject(), mail.getcontent());}/*** @description: 群发邮件* * @param recipients* 收件人们* @param mail* 邮件对象* @throws exception* * @title: mailsender.java* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午09:21:19* @version v2.0*/public void send(list recipients, mail mail) throws exception {send(recipients, mail.getsubject(), mail.getcontent());}/*** 群发邮件* * @param recipients* 收件人们* @param mail* 邮件对象* @param files* 附件* @throws exception* @author joyce.luo* @date 2014-10-15 上午10:28:38* @version v3.0* @since tomcat6.0,jdk1.6* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014*/public void send(list recipients, mail mail, vector files) throws exception {send(recipients, mail.getsubject(), mail.getcontent(), files);} }

在网页上的激活码或者验证码这类的就不用多说了吧/*** @description: ** @title: randomcodeutil.java* @package com.joyce.mail.util* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 上午11:07:34* @version v2.0*/ package com.joyce.mail.util;/*** @description: 随机码工具类* * @classname: randomcodeutil* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014* * @author comsys-lzp* @date 2014-5-28 上午11:07:34* @version v2.0*/ public class randomcodeutil {/*** 随机码集合*/private static final string[] randcode = { "0", "1", "2", "3", "4", "5", "6","7", "8", "9", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p","a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v","b", "n", "m" };/*** @description: 产生指定长度的随机码** @param codelength* @return** @title: randomcodeutil.java* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 上午11:11:55* @version v2.0*/public static string randomcode(integer codelength) throws exception {try {stringbuffer code = new stringbuffer();if(null == codelength || 0 == codelength){codelength = 4;}for (int i = 0; i < codelength; i ) {code.append(randcode[(int)math.floor(math.random() * 36)]);}return code.tostring();} catch (exception e) {throw new runtimeexception("random code error");}}/*** @description: 生成长度为4的随机码** @return* @throws exception** @title: randomcodeutil.java* @凯发ag旗舰厅登录网址下载 copyright: 凯发ag旗舰厅登录网址下载 copyright (c) 2014** @author comsys-lzp* @date 2014-5-28 下午01:19:33* @version v2.0*/public static string randomcode() throws exception{return randomcode(null);} }

ok。利用javax.mail.jar发送邮件就大功告成了!是不是非常easy呢。完整的demo资源;下载地址:http://download.csdn.net/download/luo201227/7446279

有段时间了。来更新一下。事实上也没有什么非常多要说的,仅仅是跟大家提一下。假设有兴趣的,能够去了解一下james邮件server的搭建!

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的java使用javax.mail.jar发送邮件并同意发送附件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

网站地图