/**
* 发送邮件 带附件
* @param mailInfo
* @param attachment
*/
public static boolean doSendHtmlEmail(MailSenderInfo mailInfo,File attachment) {
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if (mailInfo.isValidate()) {
// 如果需要身份认证,则创建一个密码验证器
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
mailMessage.setRecipient(Message.RecipientType.TO,to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// 设置邮件消息的主要内容
Multipart multipart = new MimeMultipart();
// 添加邮件正文
BodyPart contentPart = new MimeBodyPart();
String mailContent = mailInfo.getContent();
contentPart.setContent(mailContent, "text/html;charset=UTF-8");
multipart.addBodyPart(contentPart);
// 添加附件的内容
if (attachment != null) {
BodyPart attachmentBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(attachment);
attachmentBodyPart.setDataHandler(new DataHandler(source));
// 网上流传的解决文件名乱码的方法,其实用MimeUtility.encodeWord就可以很方便的搞定
// 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码
//sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
//messageBodyPart.setFileName("=?GBK?B?" + enc.encode(attachment.getName().getBytes()) + "?=");
//MimeUtility.encodeWord可以避免文件名乱码
attachmentBodyPart.setFileName(MimeUtility.encodeWord(attachment.getName()));
multipart.addBodyPart(attachmentBodyPart);
}
mailMessage.setContent(multipart);
// 发送邮件
Transport.send(mailMessage);
return true;
} catch (Exception ex) {
logger.info("邮件发送失败,邮箱地址:【"+mailInfo.getToAddress()+"】");
//ex.printStackTrace();
}
return false;
}
相关推荐
NULL 博文链接:https://haroldxie.iteye.com/blog/697353
java Mail 发送邮件及邮件附件 java Mail 发送邮件及邮件附件
java发送附件mail, 包阔多附件,文本mail,以及网页mail.
java 发邮件带excel附件,以流的形式发送附件,不生成excel文件
java mail 邮件发送 代码文档 java_mail_发送邮件代码 发送邮件及邮件附件java代码实例(支持多附件_群发送)
java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送
java mail 发送邮件源代码以及所需要的两个架包。 附件代码以腾讯企业邮箱发送邮件为例子,其它邮箱只要支持SMTP服务即可。只要懂点JAVA就能看懂。
JAVA_Mail_邮件_发送_接收_抄送_密送_附件 该资源是一个Java项目,可用Eclipse导入即可运行。 共4个类: 1:ReceiveMail.java -接收普通邮件 2:ReciveMailWithAttachMent.java --接收含有附件的邮件 3:SendMail....
JavaMail邮件发送(带附件)
SpringBoot中整合Mail实现发送带附件的邮件示例代码SpringBoot中整合Mail实现发送带附件的邮件示例代码
利用Java发送邮件(含附件)的例子 1、邮件发送的配置propertity文件内容如下:(utils.properties文件放在src下面) emailsmtp=smtp.qq.comemailaddress=459104018@qq.comemailpass=******2、读取配置文件的类文件...
Java课程设计 Java实现邮件的加密发送
java mail 邮件发送,可发送附件;多个附件以,号分开;可抄送、密送等多个抄送、密送以,号分开。详细发送DEMO参考SendMailTest.java类: SendMailInfo mailInfo = new SendMailInfo("mail.china1168.com", true, ...
用java编写的程序,用于发送邮件。 注意,在自己的机器上测试时,要求你的机器上已经有了这个mail的服务器,并设置用户密码等信息
采用javax.mail发送邮件,可以发送附件
封装好了方法, 传入发送邮件的邮箱和收邮件的邮箱即可测试使用
java发送邮件2实例,内有java包。我原来是在myEcilpse上进行测试的,实例一是结合ssh框架使用,非常方便。实例二直接用servlet发送,稍微繁琐
JAVA 发送文本格和HTML格式并带图片链接的邮件实例,图片可以为附件可以为邮件正文显示,可以为图片添加超链接
压缩包中有纯java程序发送邮件其中有发送纯文本格式、带附件格式、图片格式、附件图片并显示格式。
1.普通邮件的发送功能 这里的这个普通邮件的发送功能是指普通的标题正文的形式的邮箱,比较简单,... * 发送邮件,仅限String类型的正文内容,不支持附件发送 */ public class SendMail { public static void sendMai