/**
* 发送邮件 带附件
* @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;
}
相关推荐
总结来说,发送带有附件和图片的Java邮件涉及多个步骤,包括设置邮件服务器参数、创建MimeMessage、添加不同类型的MimeBodyPart以及发送邮件。`TemplateMailMessage.java`和`MailTemplateHelper.java`则可能提供了更...
总结一下,Java发送带有附件的邮件涉及到JavaMail API的使用,包括配置SMTP服务器、创建邮件对象、添加内容和附件,以及发送邮件等步骤。理解这些步骤和相关类的作用是实现此功能的关键。在处理不同类型的邮件时,...
Java Mail 也支持发送邮件附件。要发送邮件附件,需要首先创建一个邮件单元,然后将附件添加到邮件单元中。下面是一个简单的示例代码: ```java public class Mail { public static void main(String[] args) { ...
"javaemail发送邮件(带附件)" javaemail发送邮件(带附件)是使用Java技术实现的邮件发送功能,支持带附件的发送。下面是该功能的知识点总结: 1. 使用JavaMailSenderImpl类来发送邮件,需要设置SMTP服务器、用户名...
在Java中,我们可以使用JavaMail API来实现邮件的发送,包括带有附件的功能。以下是对这个主题的详细解释: 一、JavaMail API简介 JavaMail API是一个开源的Java库,用于处理邮件服务。它提供了丰富的接口和类,...
现在,我们有了Excel数据的字节数组,可以将其作为邮件附件添加: ```java import javax.mail.util.ByteArrayDataSource; import javax.activation.DataSource; // 创建DataSource对象 DataSource dataSource = ...
提供的文件"发送邮件及邮件附件java代码实例(支持多附件_群发送).doc"和"java_mail_发送邮件代码.doc"可能包含了更详细的代码示例和具体实现过程,建议参考这些文档以获取完整的邮件发送和附件处理的代码。...
以上就是利用Java Mail API发送带有附件及多媒体内容的邮件的主要步骤。这种方法非常灵活,可以根据不同的需求定制邮件内容。在实际应用中,还需要注意错误处理及安全性问题,确保邮件发送过程的稳定性和安全性。
在标题和描述中提到的"java mail 发送邮件代码",通常涉及以下几个关键知识点: 1. **JavaMail API**: 这是Java中用来处理邮件的核心库,包括`javax.mail`和`javax.mail.internet`包。你需要导入这些包来使用其提供...
此外,对于不同的邮件服务商,可能需要启用“不安全应用”或使用应用特定的授权码,以允许程序通过SMTP发送邮件。 在提供的"javamail"压缩包文件中,通常会包含示例代码或库文件,帮助你理解和实践上述概念。通过...
要实现“Java实现发送邮件内容+附件”,我们需要理解SMTP(Simple Mail Transfer Protocol)协议,并使用JavaMail API来创建和发送电子邮件。以下是一份详细的步骤和知识点解释: 1. **JavaMail API**:JavaMail ...
本教程将详细介绍如何在Spring Boot项目中实现邮件发送功能,包括发送普通邮件和带有附件的邮件,以及如何设置定时任务来自动发送邮件。 首先,我们需要在项目中引入Spring Boot的邮件服务依赖。在`pom.xml`或`...
java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送
要使用Java Mail发送QQ邮件,首先需要在QQ邮箱设置中开启“POP3/SMTP/IMAP”服务,并获取授权码。授权码是QQ邮箱为第三方应用提供的一种安全验证方式,不同于普通密码。 ### 3. 添加依赖 在Java项目中,我们需要...
首先,JavaMail API是Java用来处理邮件的核心库,它提供了创建、发送邮件的功能。要使用JavaMail,我们需要引入相关的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</...
JAVA_Mail_邮件_发送_接收_抄送_密送_附件 该资源是一个Java项目,可用Eclipse导入即可运行。 共4个类: 1:ReceiveMail.java -接收普通邮件 2:ReciveMailWithAttachMent.java --接收含有附件的邮件 3:SendMail....
要使用Java Mail发送邮件,首先需要添加相应的依赖库到项目中。对于Android项目,通常会通过Gradle来引入。 1. 添加依赖: 在项目的build.gradle文件中,添加以下依赖: ```groovy dependencies { ...
Java发送邮件是软件开发中常见的需求,特别是在企业级应用中,用于发送通知、报表或验证用户的电子邮件地址。Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java...
Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...
`SendEmail.java`类是邮件发送的测试类,它使用`ReadPropertity`类获取配置文件中的属性值,然后实例化`EmailHandle`对象并调用相应的方法发送邮件。 要实现邮件发送功能,你需要在项目中引入相应的JavaMail库,如`...