`
忧里修斯
  • 浏览: 436147 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

邮件发送

阅读更多
1、Mailer.java

package com.teesoo.util;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class Mailer {

	public static void main(String[] args) {
		 
	}

	private MimeMessage mimeMsg; // MIME邮件对象

	private Session session; // 邮件会话对象

	private Properties props; // 系统属�??

	private String username = ""; // smtp验证用户名与密码

	private String password = "";

	private Multipart mp; // Multipart对象,邮件内容,标题,附件等內容均添加到其中后再生成MimeMessage对象

	public Mailer() {
		setSmtpHost("210.51.172.215");// 指定邮件服务�?
		createMimeMessage();
	}

	public Mailer(String smtp) {
		setSmtpHost(smtp);
		createMimeMessage();
	}

	/**
	 * @param hostName
	 *            String
	 */
	public void setSmtpHost(String hostName) {
		System.out.println("设置系统属�?�:mail.smtp.host = " + hostName);
		if (props == null)
			props = System.getProperties(); // 获取系统属�??

		props.put("mail.smtp.host", hostName); // 设置SMTP主机
	}

	/**
	 * @return boolean
	 */
	public boolean createMimeMessage() {
		try {
			System.out.println("准备获取邮件会话对象�?");
			session = Session.getDefaultInstance(props, null);
		} catch (Exception e) {
			System.err.println("获取邮件会话对象出错�?" + e);
			return false;
		}

		System.out.println("准备创建MIME邮件对象�?");
		try {
			mimeMsg = new MimeMessage(session);
			mp = new MimeMultipart();

			return true;
		} catch (Exception e) {
			System.err.println("创建MIME邮件对象失败�?" + e);
			return false;
		}
	}

	/**
	 * @param need
	 *            boolean
	 */
	public void setNeedAuth(boolean need) {
		System.out.println("设置SMTP身份验证:mail.smtp.auth = " + need);
		if (props == null)
			props = System.getProperties();

		if (need) {
			props.put("mail.smtp.auth", "true");
		} else {
			props.put("mail.smtp.auth", "false");
		}
	}

	/**
	 * @param name
	 *            String
	 * @param pass
	 *            String
	 */
	public void setNamePass(String name, String pass) {
		username = name;
		password = pass;
	}

	/**
	 * @param mailSubject
	 *            String
	 * @return boolean
	 */
	public boolean setSubject(String mailSubject) {
		System.out.println("设置邮件主题�?");
		try {
			mimeMsg.setSubject(mailSubject);
			return true;
		} catch (Exception e) {
			System.err.println("设置邮件主题出错�?");
			return false;
		}
	}

	/**
	 * @param mailBody
	 *            String
	 */
	public boolean setBody(String mailBody, boolean b_html) {
		try {
			BodyPart bp = new MimeBodyPart();
			if (b_html)
				bp.setContent(
						"<meta http-equiv=Content-Type content=text/html; charset=GBK>"
								+ mailBody, "text/html;charset=GBK");
			else
				bp.setText(mailBody);
			mp.addBodyPart(bp);

			return true;
		} catch (Exception e) {
			System.err.println("设置邮件正文出错�?" + e);
			return false;
		}
	}

	/**
	 * @param name
	 *            String
	 * @param pass
	 *            String
	 */
	public boolean addFileAffix(String filename) {

		System.out.println("增加邮件附件�?" + filename);

		try {
			BodyPart bp = new MimeBodyPart();
			FileDataSource fileds = new FileDataSource(filename);
			bp.setDataHandler(new DataHandler(fileds));
			bp.setFileName(fileds.getName());

			mp.addBodyPart(bp);

			return true;
		} catch (Exception e) {
			System.err.println("增加邮件附件�?" + filename + "出错�?" + e);
			return false;
		}
	}

	/**
	 * @param name
	 *            String
	 * @param pass
	 *            String
	 */
	public boolean setFrom(String from) {
		System.out.println("设置发信人!");
		try {
			mimeMsg.setFrom(new InternetAddress(from));
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	/**
	 * @param name
	 *            String
	 * @param pass
	 *            String
	 */
	public boolean setTo(String to) {
		if (to == null)
			return false;

		try {
			mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
					.parse(to));
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public boolean addTo(String to) {
		if (to == null)
			return false;

		try {
			mimeMsg.addRecipients(Message.RecipientType.TO, to);
			return true;
		} catch (MessagingException e) {
			e.printStackTrace();
			return false;
		}
	}

	/**
	 * @param name
	 *            String
	 * @param pass
	 *            String
	 */
	public boolean setCopyTo(String copyto) {
		if (copyto == null)
			return false;
		try {
			mimeMsg.setRecipients(Message.RecipientType.CC,
					(Address[]) InternetAddress.parse(copyto));
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public boolean addCopyTo(String to) {
		if (to == null)
			return false;

		try {
			mimeMsg.addRecipients(Message.RecipientType.CC, to);
			return true;
		} catch (MessagingException e) {
			e.printStackTrace();
			return false;
		}
	}

	/**
	 * @param name
	 *            String
	 * @param pass
	 *            String
	 */
	public boolean sendout() {
		try {
			mimeMsg.setContent(mp);
			mimeMsg.saveChanges();
			System.out.println("正在发�?�邮�?......");

			Session mailSession = Session.getInstance(props, null);
			Transport transport = mailSession.getTransport("smtp");
			transport.connect((String) props.get("mail.smtp.host"), username,
					password);
			transport.sendMessage(mimeMsg, mimeMsg
					.getRecipients(Message.RecipientType.TO));
			// transport.send(mimeMsg);

			System.out.println("邮件发�?�成功!");
			transport.close();

			return true;
		} catch (Exception e) {
			System.err.println("邮件发�?�失败!" + e);
			return false;
		}
	}
}


2、ManageConfig.java

public  final class ManageConfig {

	//提供统一的page大小支持
	public static    int PAGESIZE ;
	
	/**
	 * 提供发邮件的地址
	 */
	public static   String HOST_MAIL_NAME = "xxx@teesoo.com";
	
	/**
	 * 提供发邮件的地址
	 */
	public static   String HOST_MAIL_PASSWORD = "xxx";
	
	/**
	 * 邮件发送协议
	 */
	public static   String SMTP = "mail.teesoo.com";
	
	/**
	 * 邮件接收协议
	 */
	public static   String POP3 = "mail.teesoo.com";

}


3、MailSender.java

package com.teesoo.util;

import com.teesoo.util.config.ManageConfig;
public final class MailSender {
	
	/**
	 * 发送邮件
	 * @param to
	 * @param subject
	 * @param body
	 * @throws Exception
	 */
	public static void send(String to, String subject, String body) throws Exception{
		Mailer mail = new Mailer(ManageConfig.SMTP);
		mail.setNamePass(ManageConfig.HOST_MAIL_NAME, ManageConfig.HOST_MAIL_NAME);
		mail.setFrom(ManageConfig.HOST_MAIL_NAME);
		mail.setSubject(subject);
		mail.setBody(body, false);
		mail.setTo(to);
		mail.setNeedAuth(true);
		mail.sendout();
	}
}
分享到:
评论

相关推荐

    电子邮件发送.rar

    电子邮件发送在IT行业中是一项基础但至关重要的技术,尤其在企业通信和自动化流程中扮演着重要角色。本资源“电子邮件发送.rar”包含与ASP.NET相关的源码,提供了两种不同的方法来实现电子邮件的发送:SMTP(Simple ...

    实用的电子邮件发送程序

    实用的邮件发送程序,可轻松集成至C/S架构及B/S架构的应用软件中,实现系统自动地向客户提供邮件发送服务。 其调用说明如下: 1、设置邮件服务器:void SetMailServer(char *iSrvHost,int iPort,char *iUserNo, char...

    易语言源码JMAIL邮件发送模块源码.rar

    本资源"易语言源码JMAIL邮件发送模块源码.rar"是一个专门为易语言开发的邮件发送模块,包含了实现电子邮件功能的相关源代码,旨在帮助易语言用户轻松地在自己的程序中集成邮件发送功能。 首先,我们来看核心组件`...

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

    在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...

    易语言SMTP邮件发送

    易语言SMTP邮件发送是一种在编程中利用SMTP(Simple Mail Transfer Protocol)协议实现电子邮件发送的方法,主要应用于易语言编程环境中。SMTP是互联网上用于传输电子邮件的标准协议,它允许用户通过一个服务器将...

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将详细探讨这些问题的原因及相应的解决方案。 ##...

    基于smtp的邮件发送程序的设计与实现

    在“基于SMTP的邮件发送程序的设计与实现”中,我们将探讨如何利用SMTP协议来构建一个邮件发送系统,尤其关注在VC++6.0环境下如何实现这一功能。 首先,我们需要理解SMTP的工作流程。SMTP服务器通过TCP/IP连接接收...

    邮件发送依赖包

    在Java编程语言中,邮件发送是一项常见的任务,用于与用户进行通信、发送通知或自动处理。"邮件发送依赖包"通常包含一组库和框架,这些工具使得开发人员能够轻松地构建和发送电子邮件。本篇文章将深入探讨邮件发送的...

    SMTP测试邮件发送工具

    总的来说,SMTP测试邮件发送工具是IT人员、系统管理员和普通用户排查邮件发送问题的得力助手,它简化了故障排除过程,提高了工作效率。通过理解和利用这些工具,你可以更有效地管理你的邮件通信并确保邮件系统的顺畅...

    邮件发送机. 一次可以发送1000个邮件很方便

    在IT行业中,邮件发送机是一种自动化工具,它能够批量发送电子邮件,极大地提高了工作效率,尤其适合于需要进行大规模通知、营销活动或数据交流的情况。标题提到的“邮件发送机”着重强调了其一次可发送1000个邮件的...

    简单Java邮件发送 Java实现邮件发送

    Java邮件发送是一个常见的任务,尤其在自动化通知、订阅服务或者数据报告等场景中。本教程将详细介绍如何使用Java实现邮件发送功能,同时提供了一个Jar包和demo源码供参考。 首先,我们需要理解JavaMail API,这是...

    java邮件发送组件

    Java邮件发送组件是Java开发中用于发送电子邮件的工具,它使得开发者能够轻松地在应用程序中实现邮件功能。Java Mail API是实现这一功能的核心库,它提供了丰富的接口和类,允许程序进行邮件的创建、发送以及处理。...

    基于SMTP协议的邮件发送客户端程序设计说明书

    核心代码中,关键类`SmtpMail`用于实现SMTP协议的邮件发送,它可能包含多个子类或成员,如委托和事件来处理邮件发送过程的监控,确保邮件发送的正确性和可靠性。 在程序设计中,`SmtpMail`类会封装SMTP连接、认证、...

    c#winform邮件发送系统源码

    邮件发送系统源码,功能:发送邮件,添加附件,注意:邮箱要开通pop服务 二、菜单功能 1、输入发件人的邮箱账号和密码 2、协议:根据不同邮箱填写不同协议,QQ邮箱就写smtp.qq.com 3、填写收件人邮箱账号 4、...

    电子邮件发送程序

    电子邮件发送程序是信息技术领域中一个基础且重要的工具,它允许用户通过互联网发送和接收电子信件。在现代商业和日常生活中,电子邮件已经成为沟通的主要方式之一。理解电子邮件发送程序的工作原理和相关技术对于...

    邮件发送,jmail,mail,asp邮件发送源码!

    根据给定的信息,本文将详细解释与邮件发送相关的技术知识点,包括使用Jmail组件、ASP脚本语言进行邮件发送的基本原理和技术实现。 ### Jmail组件介绍 Jmail是一款功能强大的邮件处理组件,它支持多种编程语言环境...

    C#邮件发送工具

    《C#邮件发送工具详解与应用》 C#是一种由微软公司推出的面向对象的编程语言,广泛应用于Windows平台上的软件开发。在C#中编写邮件发送工具,是开发者经常遇到的任务,尤其对于需要进行批量邮件发送的企业或个人,...

    ASP-邮件发送

    本篇文章将深入探讨ASP邮件发送的原理及实现方式,以及如何结合SQL数据库来读取数据进行邮件发送。 首先,ASP邮件发送的核心在于SMTP(Simple Mail Transfer Protocol)。SMTP是互联网上传输电子邮件的标准协议,...

    纯C代码在Linux实现邮件发送

    在Linux环境下,使用纯C语言实现邮件发送是一个挑战性的任务,因为这涉及到对网络协议的理解以及C编程的熟练掌握。本教程将深入讲解如何利用POP和SMTP协议来完成这一过程。 首先,POP(Post Office Protocol)是...

    Java编程实现邮件发送(含身份验证)

    邮件发送通常需要使用JavaMail API,一个开放源代码的Java库,它提供了一系列的类和接口来处理邮件的创建、发送以及接收。在JavaMail中,`com.sun.mail.smtp.SMTPTransport` 类是负责实际发送邮件的关键组件。 身份...

Global site tag (gtag.js) - Google Analytics