javax.mail发送带附件的邮件代码
package com.dc.mail; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.*; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class SendMail { //定义发件人、收件人、SMTP服务器、用户名、密码、主题、内容等 private String displayName="DataCheck"; private String[] to; private String from; private String smtpServer= "smtp.163.com"; private String username; private String password; private String subject="DataCheckMail"; private String content; private boolean ifAuth; //服务器是否要身份认证 private Vector file = new Vector(); //用于保存发送附件的文件名的集合 private Log log = LogFactory.getLog(getClass()); /** * 设置SMTP服务器地址 */ public void setSmtpServer(String smtpServer){ this.smtpServer=smtpServer; } /** * 设置发件人的地址 */ public void setFrom(String from){ this.from=from; } /** * 设置显示的名称 */ public void setDisplayName(String displayName){ this.displayName=displayName; } /** * 设置服务器是否需要身份认证 */ public void setIfAuth(boolean ifAuth){ this.ifAuth=ifAuth; } /** * 设置E-mail用户名 */ public void setUserName(String username){ this.username=username; } /** * 设置E-mail密码 */ public void setPassword(String password){ this.password=password; } /** * 设置接收者 */ public void setTo(String[] to){ this.to=to; } /** * 设置主题 */ public void setSubject(String subject){ this.subject=subject; } /** * 设置主体内容 */ public void setContent(String content){ this.content=content; } /** * 该方法用于收集附件名 */ public void addAttachfile(String fname){ file.addElement(fname); } public SendMail(){ } /** * 初始化SMTP服务器地址、发送者E-mail地址、用户名、密码、接收者、主题、内容 */ public SendMail(String smtpServer,String from,String displayName,String username,String password,String[] to,String subject,String content){ this.smtpServer=smtpServer; this.from=from; this.displayName=displayName; this.ifAuth=true; this.username=username; this.password=password; this.to=to; this.subject=subject; this.content=content; } /** * 初始化SMTP服务器地址、发送者E-mail地址、接收者、主题、内容 */ public SendMail(String smtpServer,String from,String displayName,String[] to,String subject,String content){ this.smtpServer=smtpServer; this.from=from; this.displayName=displayName; this.ifAuth=false; this.to=to; this.subject=subject; this.content=content; } /** * 发送邮件 */ public void send(){ String filename=""; String message="邮件发送成功!"; Session session=null; Properties props = System.getProperties(); props.put("mail.smtp.host", smtpServer); if(ifAuth){ //服务器需要身份认证 props.put("mail.smtp.auth","true"); SmtpAuth smtpAuth=new SmtpAuth(username,password); session=Session.getDefaultInstance(props, smtpAuth); }else{ props.put("mail.smtp.auth","false"); session=Session.getDefaultInstance(props, null); } session.setDebug(true); Transport trans = null; try { Message msg = new MimeMessage(session); try{ Address from_address = new InternetAddress(from, displayName); msg.setFrom(from_address); }catch(java.io.UnsupportedEncodingException e){ e.printStackTrace(); } // 创建邮件的接收者地址,并设置到邮件消息中 Address[] address = new InternetAddress[to.length]; for (int i=0; i<to.length; i++) { address[i] = new InternetAddress(to[i]); } msg.setRecipients(Message.RecipientType.TO,address); msg.setSubject(subject); Multipart mp = new MimeMultipart(); MimeBodyPart mbp = new MimeBodyPart(); mbp.setContent(content.toString(), "text/html;charset=gb2312"); mp.addBodyPart(mbp); if(!file.isEmpty()){//有附件 Enumeration efile=file.elements(); while(efile.hasMoreElements()){ mbp=new MimeBodyPart(); filename=efile.nextElement().toString(); //选择出每一个附件名 FileDataSource fds=new FileDataSource(filename); //得到数据源 mbp.setDataHandler(new DataHandler(fds)); //得到附件本身并至入BodyPart mbp.setFileName(fds.getName()); //得到文件名同样至入BodyPart mp.addBodyPart(mbp); } file.removeAllElements(); } msg.setContent(mp); //Multipart加入到信件 msg.setSentDate(new Date()); //设置信件头的发送日期 //发送信件 msg.saveChanges(); trans = session.getTransport("smtp"); trans.connect(smtpServer, username, password); trans.sendMessage(msg, msg.getAllRecipients()); trans.close(); log.debug("邮件发送成功!"); }catch(AuthenticationFailedException e){ message="邮件发送失败!错误原因:身份验证错误!"; log.error(message+e.getMessage()); }catch (MessagingException e) { message="邮件发送失败!错误原因:\n"+e.getMessage(); log.error(message+e.getMessage()); Exception ex = null; if ((ex = e.getNextException()) != null) { log.error(e.getNextException()); } } } public static void main(String[] args) { SendMail sendMail=new SendMail("smtp.XX.com","lXX@XX.com","DataCheck","lXX","XXXXXX!@#",new String[]{"lXX@XX.com","xiaoqiang@XX.com"},"DataCheckMail","测试一下"); sendMail.addAttachfile("D:\\123.xls"); sendMail.send(); } }
SmtpAuth代码
package com.dc.mail; public class SmtpAuth extends javax.mail.Authenticator { private String username,password; public SmtpAuth(String username,String password){ this.username = username; this.password = password; } protected javax.mail.PasswordAuthentication getPasswordAuthentication() { return new javax.mail.PasswordAuthentication(username,password); } }
相关推荐
基于Maven的javax.mail发送邮件例子程序 pom.xml添加依赖jar: <groupId>javax.mail <artifactId>mail ${javamail.version} </dependency> <javamail.version>1.4.1</javamail.version> /* 功能:...
通过java扩展包javax.mail-1.4.4.jar实现邮件发送功能。 import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart...
javax.mail发送邮件
采用javax.mail发送邮件,可以发送附件
赠送源代码:javax.mail-1.5.6-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.5.6.pom; 包含翻译后的API文档:javax.mail-1.5.6-javadoc-API文档-中文(简体)版.zip; Maven坐标:...
赠送源代码:javax.mail-1.6.2-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.6.2.pom; 包含翻译后的API文档:javax.mail-1.6.2-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:...
javax.mail.jar-Java发送邮件API。Apache Email基于javax.mail做了一个开源项目,参见:http://commons.apache.org/proper/commons-email/
赠送源代码:javax.mail-1.5.6-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.5.6.pom; 包含翻译后的API文档:javax.mail-1.5.6-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:...
基于javax.mail的邮件发送测试工具
JAVA发送邮件demo 代码 及jar包 javax.mail.jar JAVA发送邮件demo 代码 及jar包 javax.mail.jar
javax.mail-1.6.0.jar包及移入maven仓库语句
转载的资源,java语言写的,利用javax.mail写的上传下载文件的source代码,利用stmp发送邮件,利用pop3接收邮件。一般能上网情况下都可以运行成功,但是注意在公司里由于公司经常会进行一些限制,所以有时候会连接...
通过错误描述我们发现java.lang.NoClassDefFoundError: javax/mail/MessagingException,主要说找不到这个类。通过查询发现是缺少javax.mail-api-1.6.2.jar和activation-1.1.1.jar包。在maven上下载即可
发邮件程序需要的:javax.mail包
发送邮件时这个包没导入报错javax.mail.jar!
JDK官方的Java Mail工具,可实现收发邮件。
Classes contained in javax.jms.jar: javax.transaction.xa.XAResource.class javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms....
javax.mail.jar
javax.mail-1.5.2源码
Files contained in javax.persistence.jar: META-INF/MANIFEST.MF javax.persistence.Access.class javax.persistence.AccessType.class javax.persistence.AssociationOverride.class javax.persistence....