`
pengjianbo1
  • 浏览: 232449 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaMail发邮件【可带附件】

    博客分类:
  • J2EE
阅读更多
package test;

import java.util.ArrayList;
import java.util.List;

public class MailBean {

	// 发送邮件服务器
	private String hostName = "smtp.163.com";

	// 发送邮件服务器端口
	private int port = 25;

	// 发送者邮箱用户名
	private String userName = "xxx";

	// 发送者邮箱密码
	private String password = "";

	// 邮件接收者
	private String toAddress = "xxx@qq.com";

	// 邮件主题
	private String subject = "JavaMial 测试";

	// 邮件内容
	private String content = "这是一封JavaMail测试邮件";

	// 邮件发送者
	private String fromAddress = "xxx@163.com";
	
	//附件路径列表
	private List<String> fileList=new ArrayList<String>();

	
	public List<String> getFileList() {
		return fileList;
	}

	public void setFileList(List<String> fileList) {
		this.fileList = fileList;
	}

	public String getFromAddress() {
		return fromAddress;
	}

	public void setFromAddress(String fromAddress) {
		this.fromAddress = fromAddress;
	}

	public int getPort() {
		return port;
	}

	public void setPort(int port) {
		this.port = port;
	}

	public String getHostName() {
		return hostName;
	}

	public void setHostName(String hostName) {
		this.hostName = hostName;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getToAddress() {
		return toAddress;
	}

	public void setToAddress(String toAddress) {
		this.toAddress = toAddress;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

}

 

package test;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;



public class JavaMail {

	@SuppressWarnings("static-access")
	public void setMail(MailBean mailBean) {
		try {
			// 设置JavaMail属性
			Properties props = new Properties();
			// 设置邮件服务器端口
			props.put("mail.smtp.port", mailBean.getPort());
			// SMTP邮件服务器IP地址或主机名
			props.put("mail.smtp.host", mailBean.getHostName());
			props.put("mail.smtp.auth", "true");
			// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
			EmailAuthenticator auth = new EmailAuthenticator(mailBean.getUserName(), mailBean.getPassword());
			// 根据已配置的JavaMail属性创建Session实例
			Session mailSession = Session.getInstance(props, (Authenticator) auth);
			// 你可以在控制台(console)上看到发送邮件的过程
			mailSession.setDebug(true);
			MimeMessage msg = new MimeMessage(mailSession);
			InternetAddress[] address = InternetAddress.parse(mailBean.getToAddress(), false);
			// 设置邮件接收者
			msg.setRecipients(Message.RecipientType.TO, address);
			// 设置邮件主题
			msg.setSubject(mailBean.getSubject());
			// 设置邮件时间
			msg.setSentDate(new Date());
			// 设置邮件发送者
			msg.setFrom(new InternetAddress(mailBean.getFromAddress()));
			Multipart multipart = new MimeMultipart();
			// 加入文本内容
			MimeBodyPart mimeBodyPart = new MimeBodyPart();
			mimeBodyPart.setText(mailBean.getContent());
			multipart.addBodyPart(mimeBodyPart);
			List<String> fileList = mailBean.getFileList();
			//加入附件
			for (String filePath : fileList) {
				MimeBodyPart bodyPart = new MimeBodyPart();
				//得到数据源
				FileDataSource fileDataSource = new FileDataSource(filePath);
				bodyPart.setDataHandler(new DataHandler(fileDataSource));
				bodyPart.setDisposition(Part.ATTACHMENT);
				//设置文件名
				bodyPart.setFileName(fileDataSource.getName());
				multipart.addBodyPart(bodyPart);
			}
			msg.setContent(multipart);
			// 创建Transport对象
			Transport tran = mailSession.getTransport("smtp");
			// 连接邮件服务器
			tran.connect(mailBean.getHostName(), mailBean.getUserName(), mailBean.getPassword());
			// 发送邮件
			tran.send(msg);
			tran.close();
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}

	// 邮件用户身份验证类
	class EmailAuthenticator extends Authenticator {

		private String username;

		private String userpass;

		EmailAuthenticator(String un, String up) {
			super();
			username = un;
			userpass = up;
		}

		public PasswordAuthentication getPasswordAuthentication() {
			return new PasswordAuthentication(username, userpass);
		}
	}

	public static void main(String[] args) {

		JavaMail javaMail = new JavaMail();
		MailBean mailBean = new MailBean();
		List<String> fileList = new ArrayList<String>();
		fileList.add("G:\\temp\\1.txt");
		fileList.add("G:\\temp\\2.txt");
		mailBean.setFileList(fileList);
		javaMail.setMail(mailBean);

	}

}

 

分享到:
评论
3 楼 xiangcaotiank 2012-10-26  
附件已经在服务器上的时候该如何处理,比如,草稿箱里已经有了两个附件,我只需要一个,同时我还要在本地添加一个附件
2 楼 xiaoyaolong 2012-04-26  
代码规范也写的非常好,值得学习!
1 楼 xiaoyaolong 2012-04-26  
效果不错噢,非常感谢!

相关推荐

    javamail收发邮件(带附件,正文带图).doc

    javamail收发邮件(带附件,正文带图).doc

    使用JAVAMail代发邮件

    这个类称为 MailInfo,包含了邮件的各种信息,例如邮件服务器的主机名和端口号、邮件发送者的地址、邮件接收者的地址、邮件主题、邮件内容、邮件附件等。 在 MailInfo 类中,我们定义了多个成员变量,用于存储邮件...

    javamail发邮件(带附件)

    ### JavaMail 发送带附件的电子邮件 在Java开发过程中,经常需要通过程序自动发送电子邮件,尤其是在需要进行用户通知、密码重置或者系统日志报告等场景。JavaMail API提供了非常强大的功能来支持这些需求,包括...

    用JAVAMAIL发邮件(含附件),.TXT

    用JAVAMAIL发邮件(含附件),. TXT用JAVAMAIL发邮件(含附件),.TXT

    javamail收取邮件(包括附件)

    在JavaMail中,我们可以利用其API来实现邮件的收发功能,包括处理附件。下面我们将详细探讨如何使用JavaMail API实现邮件的收取,特别是如何通过POP3和IMAP协议获取邮件信息。 首先,确保你的项目中已经引入了...

    javamail发邮件(带附件功能)

    根据提供的文件信息,本文将详细解释如何使用JavaMail在Java应用程序中发送电子邮件,包括带有附件的邮件发送功能。本文档将覆盖以下知识点: 1. JavaMail API简介 2. JavaMail配置与设置 3. 创建并发送普通邮件 4....

    JavaMail邮件发送(带附件)

    JavaMail邮件发送(带附件)

    james和javamail实现邮件收发(带发送附件)

    JavaMail API支持MIME(多用途互联网邮件扩展)格式,这使得我们能够处理包括文本、图片、音频、视频以及各种其他类型在内的复杂邮件内容,包括附件。 下面是一个简化的JavaMail发送邮件的过程: 1. **配置邮件...

    javamail发送邮件(带附件)

    这个资源提供了一个具体的示例,展示了如何使用JavaMail API 来发送带有附件的邮件。以下是对这个主题的详细解释: 首先,你需要理解JavaMail的核心组件。`javax.mail` 和 `javax.mail.internet` 包含了发送邮件所...

    javaMail 发邮件

    这个例子展示了如何使用JavaMail发送带附件的邮件。需要注意的是,实际应用中应处理各种异常,确保邮件发送的健壮性。此外,如果你的邮件服务器需要身份验证,还需要提供一个Authenticator来处理登录信息。 总的来...

    Gmail邮件通过JavaMail发送(不带附件与带一个附件)

    本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...

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

    在JavaMail中,发送带有附件的邮件涉及到对MIME(Multipurpose Internet Mail Extensions)标准的理解和使用。MIME扩展了邮件协议,允许在邮件中包含多媒体内容,如图片、文档、音频或视频文件等。 在JavaMail中,`...

    javamail收发邮件(带附件,正文带图).docx

    ### JavaMail 发送带附件及内嵌图片的邮件 #### 一、概述 在现代通讯方式中,电子邮件依然占据着重要的地位,特别是在企业级应用中。JavaMail API 是 Java 平台上广泛使用的邮件处理库之一,它允许开发人员通过...

    javaMail 收发邮件

    3. **Message**:Message 类代表一封邮件,包含了邮件的所有头部信息(如发件人、收件人、主题、日期等)以及邮件内容。你可以创建 Message 对象来构建一封新的邮件,或者从 Folder 中获取已有的邮件对象。 4. **...

    JavaMail发送邮件(文本、html、附件)

    5. **发送带附件的邮件** - 使用`Multipart`对象,添加额外的`MimeBodyPart`来处理附件。 - 示例代码: ```java MimeBodyPart attachmentPart = new MimeBodyPart(); attachmentPart.attachFile("path/to/...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    JavaMail 是一个强大的Java库,它允许开发人员在Java应用程序中实现邮件的发送、接收以及管理功能。这个项目不仅提供了SMTP、POP3和IMAP协议的支持,还包含了丰富的API,可以方便地处理邮件的MIME编码、附件、HTML...

    JavaMail实现邮件发送的简单封装(包括文本、图片、html、附件)

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一组API,使得开发者能够轻松地处理复杂的邮件操作,比如发送文本、图片、HTML内容以及附件。在本文中,我们将深入探讨如何使用...

    javamail 回执邮件资料

    例如,使用 Commons Email 发送带附件的邮件: ```java SimpleEmail email = new SimpleEmail(); email.setFrom("sender@example.com"); email.setSubject("邮件主题"); email.setMsg("邮件正文"); email....

    javamail(带界面的javamail)

    在本项目中,"javamail(带界面的javamail)"显然包含了一个具有图形用户界面(GUI)的示例应用,展示了如何集成JavaMail功能来实现邮件的交互操作。 首先,我们要了解JavaMail的基本概念。JavaMail API 提供了 javax...

Global site tag (gtag.js) - Google Analytics