`

java发送邮件(包含正文、附件)

    博客分类:
  • Java
阅读更多
1、pom.xml依赖包引入
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.5</version>
</dependency>

2、email.properties文件
#email
mail.smtp.host=smtp.mxhichina.com
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.auth=true
mail.smtp.port=465


fromEmail=XX@XX.com
password=XXXXXXX
toEmail=XX@qq.com,XX@XX.com

3、前期工作
		//创建Properties对象 
		Properties props = new Properties();
		try {
			//ClassUtils.getDefaultClassLoader().getResource("").getPath()获取项目地址
			props.load(new FileInputStream(ClassUtils.getDefaultClassLoader().getResource("").getPath() + File.separator + "email.properties"));
		} catch (Exception e) {
			logger.error(e.getMessage(), e);
		}
		final String fromEmail = props.getProperty("fromEmail");//邮件发起人
		final String password = props.getProperty("password");//邮件发起人密码
		final String toEmail = props.getProperty("toEmail"); //接收人邮件

		//获得网络连接验证的对象
		Authenticator auth = new Authenticator() {
			//override
			protected PasswordAuthentication getPasswordAuthentication() {
			return new PasswordAuthentication(fromEmail, password);
		}
		};
		//得到默认的对话对象  
		Session session = Session.getDefaultInstance(props, auth);
		//标题
		String subject = "";
		//内容
		StringBuilder temp = new StringBuilder();
		String filePath = "";
		//发送邮件
	 
  
  EmailUtil.sendEmailWithAttachment(session,fromEmail,toEmail,subject,body,filePath);

4、EmailUtil工具类
	 /**
	 * send HTML email with Attachment
	 * @param session
	 * @param fromEmail
	 * @param toEmail
	 * @param subject
	 * @param body
	 * @param fileName
	 */
	public static void sendEmailWithAttachment(Session session, String fromEmail, String toEmail, String subject, String body, String fileName) throws Exception{
		//消息创建
		MimeMessage msg = new MimeMessage(session);
		//set message headers
		msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
		msg.addHeader("format", "flowed");
		msg.addHeader("Content-Transfer-Encoding", "8bit");
		msg.setFrom(new InternetAddress(fromEmail));
		// 创建邮件的接收者地址,并设置到邮件消息中
		Address[] toEmails = null;
		if(toEmail.indexOf(",")>-1) {
			String[] emailList = toEmail.split(",");
			toEmails= new InternetAddress[emailList.length];
			for (int i = 0; i < emailList.length; i ++) {
				toEmails[i] = new InternetAddress(emailList[i]);
			}
		} else {
			toEmails= new InternetAddress[1];
			toEmails[0] = new InternetAddress(toEmail);
		}
		msg.setRecipients(Message.RecipientType.TO,toEmails);
		msg.setSentDate(new Date());
		//标题
		msg.setSubject(subject,"UTF-8");
		//创建body
		MimeMultipart allBodyPart = new MimeMultipart("mixed");
		//创建正文html
		MimeBodyPart htmlBodyPart = new MimeBodyPart();            
		htmlBodyPart.setContent(body,"text/html;charset=gb2312");  
		allBodyPart.addBodyPart(htmlBodyPart);
		//创建附件
		MimeBodyPart attachBodyPart = new MimeBodyPart();
		FileDataSource source = new FileDataSource(fileName);
		attachBodyPart.setDataHandler(new DataHandler(source));
		//不带路径文件名称
		File tempFile =new File(fileName.trim());
		attachBodyPart.setFileName(tempFile.getName());
		allBodyPart.addBodyPart(attachBodyPart);
		//设置整个邮件内容为最终组合出的MimeMultipart对象
		msg.setContent(allBodyPart);
		  
		//发送邮件
		Transport transport = session.getTransport("smtp");
		//transport.connect("smtp.mxhichina.com" , 465 , fromEmail, password);链接邮件服务器
		transport.send(msg);
	}
分享到:
评论

相关推荐

    javaemail发送邮件(带附件)

    "javaemail发送邮件(带附件)" javaemail发送邮件(带附件)是使用Java技术实现的邮件发送功能,支持带附件的发送。下面是该功能的知识点总结: 1. 使用JavaMailSenderImpl类来发送邮件,需要设置SMTP服务器、用户名...

    利用Java发送邮件(含附件)的例子

    总结一下,Java发送带附件的邮件涉及到的主要知识点有: - 配置文件的读取与解析。 - JavaMail API的使用,包括`Session`、`MimeMessage`、`Multipart`、`MimeBodyPart`等类。 - SMTP协议的使用,包括身份验证和邮件...

    java 发送附件mail

    总结一下,Java发送带有附件的邮件涉及到JavaMail API的使用,包括配置SMTP服务器、创建邮件对象、添加内容和附件,以及发送邮件等步骤。理解这些步骤和相关类的作用是实现此功能的关键。在处理不同类型的邮件时,...

    Java实现发送邮件内容+附件

    要实现“Java实现发送邮件内容+附件”,我们需要理解SMTP(Simple Mail Transfer Protocol)协议,并使用JavaMail API来创建和发送电子邮件。以下是一份详细的步骤和知识点解释: 1. **JavaMail API**:JavaMail ...

    Java发送邮件_单附件_多附件_加抄送多人 _2个示例zip

    这个"Java发送邮件_单附件_多附件_加抄送多人 _2个示例zip"的资源包含两个核心类:EmailManager.java和AnnexMailService.java,它们提供了一个强大的邮件发送功能,支持单个或多个附件,以及添加抄送人。下面将详细...

    java邮件发送(含附件发送)源码

    Java邮件发送技术是Java开发中一个实用且常见的功能,它允许开发者通过编程方式发送电子邮件,包括文本、HTML格式的正文以及附件。在本教程中,我们将深入探讨如何使用JavaMail API来实现邮件发送,特别是含附件的...

    发送邮件及邮件附件java代码实例(支持多附件,群发送).pdf

    【Java 发送邮件及邮件附件】 在Java编程中,发送邮件及附加文件是一项常见的任务,这通常涉及到SMTP(Simple Mail Transfer Protocol)协议。这里我们分析的`Mail.java`类提供了一个实现此功能的示例,它使用了...

    java 发邮件带excel附件,以流的形式发送附件,不生成excel文件

    首先,我们需要准备发送邮件的基础环境,这通常涉及使用JavaMail API。JavaMail API提供了一个强大的框架来处理邮件服务,包括创建、发送和接收邮件。确保你的项目已经引入了以下依赖: ```xml &lt;groupId&gt;...

    java实现邮件发送(三种发送方式都有)

    Java发送邮件是软件开发中常见的需求,特别是在自动化通知、用户验证和客户服务等方面。在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下...

    java发送邮件功能

    Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...

    Java实现发送邮件(带附件)功能

    Java代码实现发送邮件功能,支持发送带有附件的。需要直接拿走

    Java发送outlook邮件

    首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,它提供了标准的JavaMail API规范,允许开发者发送、接收和处理邮件。在发送Outlook邮件时,我们通常不是直接与Outlook交互,而是使用SMTP(Simple...

    java 邮件发送 可带附件

    Java邮件发送功能是Java开发中常见的一项...通过以上步骤和代码,你可以实现使用Java发送带有附件的邮件。不过,实际开发中,你可能还需要考虑其他因素,如使用模板引擎生成邮件内容、批量发送邮件、错误重试策略等。

    JavaMail(3)——发送带附件的邮件.docx

    使用 `Transport.send()` 方法发送邮件: ```java Transport.send(mailMessage); ``` 以上就是使用JavaMail发送带有附件的邮件的基本步骤。这个过程需要正确配置邮件服务器的属性,如SMTP服务器地址、端口、用户名...

    java开发实现163邮件发送(支持附件

    7. **发送邮件** 通过`Transport`类的`send`方法发送已准备好的`Message`。发送前,确保`Session`对象已经设置了认证信息,以便通过SMTP服务器的身份验证。 8. **监控代码实现** 如果需要实现对URL的访问监控,...

    Java发送带模版的邮件示例

    本示例将详细介绍如何在Java中使用模板发送邮件,以及相关的知识点。 首先,你需要了解JavaMail API。这是一个开放源码的库,用于处理邮件协议,如SMTP(简单邮件传输协议)。要使用JavaMail,需要在项目中引入相应...

    java发送邮件完整程序

    在这个"java发送邮件完整程序"中,我们将会探讨如何使用Java语言来构建一个邮件发送功能,包括所需的库、步骤以及关键代码片段。 首先,Java Mail API是实现邮件发送的核心库,它提供了丰富的接口和类来处理邮件的...

    java发送邮件所需jar包.zip

    在"java发送邮件所需jar包.zip"这个压缩文件中,很可能包含了用于Java邮件发送的核心库。下面将详细解释Java发送邮件涉及的主要知识点,以及可能包含的jar包及其作用。 1. **JavaMail API**:这是Java发送邮件的...

    java发送邮件项目

    Java发送邮件是一个常见的任务,尤其在企业级应用中,用于通知、报告或者自动化流程。本项目专注于使用Java来实现这个功能。以下将详细介绍如何利用Java发送邮件,以及项目中的关键知识点。 首先,Java发送邮件主要...

Global site tag (gtag.js) - Google Analytics