Java发送邮件javax.mail的实现方法
程序员文章站
2024-03-08 13:37:34
直接上源码:
1. 邮件的基本信息(方便就直接设置为静态了)
下面最好是做为一个javabean
package com.lgf.email;...
直接上源码:
1. 邮件的基本信息(方便就直接设置为静态了)
下面最好是做为一个javabean
package com.lgf.email; import java.util.date; public class emailmessage { /** * 邮件的信息,可以自己进行设置。 * 为了方便直接全部设置为静态 */ // 收件人邮箱 public static string to = "xxx@xxx.com"; // 发件人邮箱 public static string from = "xxx@xxx.com"; public static string from_name = "xxx"; // 抄送人 public static string cc="xxx@nxxx.com"; // 暗送人 public static string bcc="xxx@nxxx.com"; // 邮件的类型 public static string email_content = "text/plain"; // 邮件标题 public static string email_subject = "test email with javamail"; // 邮件头 public static string email_header = "this is email header"; // 内容 public static string email_body = "<a href=\"http://www.baidu.com\">this is email body</a>"; // 服务器 比如qq的可以设置为smtp.qq.com public static string email_host = "smtp.xxx.com"; // 发送时间 public static date senddate = new date(); // 是否需要验证用户名和密码 public static boolean validate = true; }
2. 服务器验证(就是一般登入时候的用户名和密码)
package com.lgf.email; import javax.mail.authenticator; import javax.mail.passwordauthentication; /** * 用户名和密码的验证 * @author lgf * */ public class mailauthenticator extends authenticator{ private string username="xxxxx"; private string password="xxxxx"; public mailauthenticator() { super(); } /** * 设置验证的用户名和密码 */ public mailauthenticator(string username , string password) { super(); this.username = username; this.password = password; } protected passwordauthentication getpasswordauthentication() { return new passwordauthentication(this.username,this.password); } }
3. 发送邮件前设置信息和步骤
package com.lgf.email; import java.util.properties; import javax.activation.datahandler; import javax.activation.datasource; import javax.activation.filedatasource; import javax.mail.address; import javax.mail.authenticator; import javax.mail.bodypart; import javax.mail.message; import javax.mail.multipart; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimebodypart; import javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; import com.lgf.sendemail.mailauthenticator; public class sendemail { /** * 发送普通邮件 * @throws exception */ public void dosendnormalmail() { // 获取系统环境 properties prop = new properties(); authenticator auth = null; // 判断发送邮件是否需要验证 if (emailmessage.validate) { // 邮件服务器认证 用户名和密码 auth = new mailauthenticator(); } // 添加必要的信息 prop.put("mail.smtp.host", emailmessage.email_host); prop.put("mail.smtp.auth", "true"); // 设置对话和邮件服务器进行通讯 session session = session.getdefaultinstance(prop, auth); // 在控制台显示debug信息 session.setdebug(true); // 设置邮件对象 message message = new mimemessage(session); try { // 设置邮件主题 message.setsubject(emailmessage.email_subject); // 设置邮件标题 message.setheader("header", emailmessage.email_header); // 设置发送时间 message.setsentdate(emailmessage.senddate); // 设置发信人地址 和 名字 address address = new internetaddress(emailmessage.from, emailmessage.from_name); // 把发件人信息添加到信息中 message.setfrom(address); // 设置发件人地址 address toaddress = new internetaddress(emailmessage.to); // 设置接收人地址 message.setrecipient(message.recipienttype.to, toaddress); // 设置多个收件人地址 // message.addrecipient(message.recipienttype.to,new internetaddress("xxx@xxx.com")); // 设置邮件格式 message.setcontent("content", emailmessage.email_content); // 设置邮件内容 必须在设置文件格式后面 message.settext(emailmessage.email_body); // 保存上面添加的信息 message.savechanges(); // 发送邮件 system.out.println("sendnormalemail() 开始发送邮件……"); transport.send(message); system.out.println("发送成功!"); } catch (exception e) { system.out.println("出错"); e.printstacktrace(); } } /** * 发送html格式的邮件 */ public void dosendhtmlmail() { // 获取系统环境 properties prop = new properties(); authenticator auth = null; if (emailmessage.validate) { // 邮件服务器认证 用户名和密码 auth = new mailauthenticator(); } // 添加必要的信息 prop.put("mail.smtp.host", emailmessage.email_host); prop.put("mail.smtp.auth", "true"); // 设置对话和邮件服务器进行通讯 session session = session.getdefaultinstance(prop, auth); // 设置邮件对象 message message = new mimemessage(session); try { // 设置邮件主题 message.setsubject(emailmessage.email_subject); // 设置邮件标题 message.setheader("header", emailmessage.email_header); // 设置发送时间 message.setsentdate(emailmessage.senddate); // 设置发信人地址 和 名字 address address = new internetaddress(emailmessage.from, emailmessage.from_name); // 把发件人信息添加到信息中 message.setfrom(address); // 设置发件人地址 address toaddress = new internetaddress(emailmessage.to); // 设置接收人地址 message.setrecipient(message.recipienttype.to, toaddress); // 设置多个收件人地址 // message.addrecipient(message.recipienttype.to,new internetaddress("xxx@xxx.com")); // 设置发送信息的内容 下面为发送hmml // 设置邮件格式 emailmessage.email_content = "text/html; charset=utf-8"; message.setcontent(emailmessage.email_body, emailmessage.email_content); // 保存上面添加的信息 message.savechanges(); // 发送邮件 system.out.println("dosendhtmlmail() 开始发送邮件……"); transport.send(message); system.out.println("发送成功!"); } catch (exception e) { system.out.println("出错"); e.printstacktrace(); } } /** * 发送带有附件格式的邮件 */ public void dosendattachmentmail() { // 获取系统环境 properties prop = new properties(); authenticator auth = null; if (emailmessage.validate) { // 邮件服务器认证 用户名和密码 auth = new mailauthenticator(); } // 添加必要的信息 prop.put("mail.smtp.host", emailmessage.email_host); prop.put("mail.smtp.auth", "true"); // 设置对话和邮件服务器进行通讯 session session = session.getdefaultinstance(prop, auth); // 设置邮件对象 message message = new mimemessage(session); try { // 设置邮件主题 message.setsubject(emailmessage.email_subject); // 设置邮件标题 message.setheader("header", emailmessage.email_header); // 设置发送时间 message.setsentdate(emailmessage.senddate); // 设置发信人地址 和 名字 address address = new internetaddress(emailmessage.from, emailmessage.from_name); // 把发件人信息添加到信息中 message.setfrom(address); // 设置发件人地址 address toaddress = new internetaddress(emailmessage.to); // 设置接收人地址 message.setrecipient(message.recipienttype.to, toaddress); // 设置多个收件人地址 // message.addrecipient(message.recipienttype.to,new internetaddress("xxx@xxx.com")); // 设置发送信息的内容 下面为发送附件 message.setcontent(emailmessage.email_body, emailmessage.email_content); bodypart messagebodypart = new mimebodypart(); messagebodypart.settext("bodypart"); multipart multipart = new mimemultipart(); multipart.addbodypart(messagebodypart); messagebodypart = new mimebodypart(); // 设置上传的资源 datasource source = new filedatasource("e:\\3.doc"); // 添加到 messagebodypart.setdatahandler(new datahandler(source)); // 设置文件名称,记得后缀名 messagebodypart.setfilename("test.doc"); multipart.addbodypart(messagebodypart); message.setcontent(multipart); // 保存上面添加的信息 message.savechanges(); // 发送邮件 system.out.println("dosendattachmentmail() 开始发送邮件……"); transport.send(message); system.out.println("发送成功!"); } catch (exception e) { system.out.println("出错"); e.printstacktrace(); } } /** * @param args */ public static void main(string[] args) { // new sendemail().dosendnormalmail(); // new sendemail().dosendhtmlmail(); new sendemail().dosendattachmentmail(); } }
以上就是java发送邮件javax.mail的详细代码,希望对大家实现java邮件发送有所帮助。