下面是一段用Java mail API发带附件邮件的方法,附件是读的硬盘上的文件,你参考下吧
String message="Mail send OK!";
Session session=null;
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);
if(ifAuth){ //the mail server ask auth
props.put("mail.smtp.auth","true");
MailAuth smtpAuth=new MailAuth(username,password);
session=Session.getDefaultInstance(props, smtpAuth);
}else{
props.put("mail.smtp.auth","false");
session=Session.getDefaultInstance(props, null);
}
session.setDebug(isDebug);
Transport trans = null;
try {
Message msg = new MimeMessage(session);
try{
Address from_address;
if (displayName == null)
from_address = new InternetAddress(from);
else
from_address = new InternetAddress(from, displayName);
msg.setFrom(from_address);
}catch(java.io.UnsupportedEncodingException e){
e.printStackTrace();
}
//InternetAddress[] address={new InternetAddress(to)};
InternetAddress[] address= InternetAddress.parse(to);
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
if (cc != null) {
InternetAddress[] ccAddr= InternetAddress.parse(cc);
msg.setRecipients(Message.RecipientType.CC, ccAddr);
}
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
//mbp.setContent(content.toString(), "text/html"); //;charset=gb2312");
mbp.setContent(content.toString(), "text/plain"); //;charset=gb2312");
mp.addBodyPart(mbp);
if(!file.isEmpty()){//have attachment
Enumeration efile=file.elements();
while(efile.hasMoreElements()){
mbp=new MimeBodyPart();
filename=efile.nextElement().toString(); //get each attachment name
FileDataSource fds=new FileDataSource(filename); //get the file data source
mbp.setDataHandler(new DataHandler(fds)); //get the attachment content
mbp.setFileName(fds.getName()); //get the file name and include to content
mp.addBodyPart(mbp);
}
file.removeAllElements();
}
msg.setContent(mp); // add the Multipart into mail
msg.setSentDate(new Date()); //set the date in mail header
// send
msg.saveChanges();
trans = session.getTransport("smtp");
trans.connect(smtpServer, username, password);
trans.sendMessage(msg, msg.getAllRecipients());
trans.close();
}catch(AuthenticationFailedException e){
map.put("state", "failed");
message="Mail send fail!Error caused:auth error!\n";
e.printStackTrace();
}catch (MessagingException e) {
message="Mail send fail!Error caused:\n"+e.getMessage();
map.put("state", "failed");
e.printStackTrace();
Exception ex = null;
if ((ex = e.getNextException()) != null) {
System.out.println(ex.toString());
ex.printStackTrace();
}
}
分享到:
相关推荐
JavaMail基础教程(API),这是一个doc文档,手把手的叫你使用JavaMail开发收发邮件
javamail中文API文档 方法解释详细。
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
这里提供了javamail使用的两个jar包,希望对学习javamail的人能够提供帮助,当然使用的方法是把这两个jar包放到.classpath中
这个教程很适合初学者学习使用,压缩包里包含有: (1)使用JavaMail的两个实例,实例中有测试用的main方法,简单易懂,经本人测试有效。 (2)使用JavaMail所需的所有jar包。
使用JavaMail对用户注册,重置密码实现邮箱验证.
使用方法可以查看我的“使用 JavaMail 发送电子邮件,适合多种电子邮箱地址充当发送者”一文。
javamail发送邮件所需jar包。 开发的过程中,运行时可能会出现以下的错误: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 原因是jar包版本不统一,解决方法如下...
利用JavaMail API来发送Email的工具类 支持单发,群发及无限制数量的附件功能,并同时支持简单邮件和HTML两种格式的邮件内容 支持抄送,密送功能 具体使用参见其mail方法的使用示例
使用javamail包收发中文邮件的编码,解码问题以及解决方法.pdf
使用javamail包收发中文邮件的编码,解码问题以及解决方法扫描.pdf
该资源是一个javamail发送邮件的例子,里面集成了别人的文件发送的功能,单次发送邮件只能上传一个附件。是一个测试方法,拿过来改一改邮件的地址和密码就可以使用了
越来越多的人在使用它。而且用它的人数势必会继续增加。本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并...
javamail使什么,如何用javamail发送邮件,该jar在java代码中如何编写,而且还包含如何使用的具体方法和代码。
简易封装的javaMail 支持同时发送信息与附件,发件人,发件时间,主题,内容,附件等等 内涵详细的说明与测试使用方法
JavaMail是利用现有的邮件账户发送邮件的工具,使用过JavaMail的api发送邮件的人可能会有这样一个疑惑:我...那么通过下面这篇文章大家一起来看看使用JavaMail保证邮件发送成功的方法,有需要的朋友们可以参考借鉴。
javamail开发,安装方法,附件,图片等等发送
主要介绍了Java使用JavaMail发送邮件的方法,结合实例形式分析了Java使用JavaMail实现邮件发送的具体步骤与相关实现代码,需要的朋友可以参考下
Javamail,jar包,通过访问jar包内Test.main(new String())的方法可以直接进行邮件发送
JavaMail项目介绍 程序功能 用户注册,通过邮箱激活账号 程序下载: 程序简要说明: 用户注册页面,填写基本信息包括用户名密码邮箱等,点击注册向用户邮箱发送激活邮件,点击邮件中的链接实现激活账号。 具体实现:...