`
conkeyn
  • 浏览: 1519993 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

MailUtil 邮件发送工具类

    博客分类:
  • Java
阅读更多

d

mail.properties

#邮件服务器是否需要验证用户存在与否 ,使用“true”、“false”、“0”、“1”
mail.smtp.auth=true
#邮件服务器使用的协议
mail.transport.protocol=smtp
#邮件服务器地址
mail.smtp.host=smtp.126.com
#邮件服务器使用的端口
mail.smtp.port=25
#默认服务器端用户名
mail.host.user=*****
#默认服务器用户密码
mail.host.user.password=****
#默认主机地址
mail.host.user.from=****@126.com

 MailUtil.java

import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.ResourceBundle;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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;

import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;

/**
 * 邮件发送工具
 * 
 * @author linzq
 * 
 */
public class MailUtil {

	public static boolean sendMail(String to, String subject, String content)
			throws AddressException, MessagingException {
		Map<String, String> fileMap = new HashMap<String, String>();
		ResourceBundle rb = ResourceBundle.getBundle("email",
				Locale.getDefault());
		Boolean isAutheticate = BooleanUtils.toBooleanObject(rb
				.getString("mail.smtp.auth"));
		String protocol = rb.getString("mail.transport.protocol");
		String host = rb.getString("mail.smtp.host");
		Integer port = NumberUtils.toInt(rb.getString("mail.smtp.port"), 25);
		String user = rb.getString("mail.host.user");
		String password = rb.getString("mail.host.user.password");
		String from = rb.getString("mail.host.user.from");
		return sendMail(isAutheticate, protocol, host, port, user, password,
				from, to, subject, content, fileMap);
	}

	/**
	 * @param isAutheticate
	 *            邮件务器是否验证用户
	 * @param protocol
	 *            协认
	 * @param host
	 *            邮件务器地址
	 * @param port
	 *            端口
	 * @param user
	 *            用户
	 * @param password
	 *            密码
	 * @param from
	 *            邮件发送地址
	 * @param to
	 *            邮件接收地址
	 * @param subject
	 *            标题
	 * @param content
	 *            内容
	 * @param filePathMap
	 *            附件,它是一个“文件名=全路径地址”的映射
	 * @return
	 * @throws AddressException
	 * @throws MessagingException
	 */
	public static boolean sendMail(Boolean isAutheticate, String protocol,
			String host, Integer port, String user, String password,
			String from, String to, String subject, String content,
			Map<String, String> filePathMap) throws AddressException,
			MessagingException {
		boolean bool = false;
		Properties p = new Properties();
		p.put("mail.smtp.auth", isAutheticate.toString());
		p.put("mail.transport.protocol", protocol);
		p.put("mail.smtp.host", host);
		p.put("mail.smtp.port", port);
		// 建立会话
		Session session = Session.getInstance(p);
		// 建立消息
		Message msg = new MimeMessage(session);
		// 设置发件人
		msg.setFrom(new InternetAddress(from));
		// 收件人
		msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
		// 发送日期
		msg.setSentDate(new Date());
		// 主题
		msg.setSubject(subject);
		// 设置邮件内容,作为Multipart对象的一部分
		MimeBodyPart mbp = new MimeBodyPart();
		mbp.setText(content);
		Multipart mulp = new MimeMultipart();
		mulp.addBodyPart(mbp);
		// 文件件名
		String fileName = null;
		// 全路径
		String fileFullPath = null;
		DataSource source = null;
		if (filePathMap != null && filePathMap.size() > 0) {
			Iterator it = filePathMap.entrySet().iterator();
			while (it.hasNext()) {
				// 为每个附件做为Multipart对象的一部分
				mbp = new MimeBodyPart();
				Map.Entry<String, String> entry = (Map.Entry) it.next();
				fileName = entry.getKey();
				fileFullPath = entry.getValue();
				if (fileName == null || fileName.equals("")
						|| fileFullPath == null || fileFullPath.equals("")) {
					continue;
				}
				File f = new File(fileFullPath);
				if (!f.exists()) {
					continue;
				}
				source = new FileDataSource(fileFullPath);
				mbp.setDataHandler(new DataHandler(source));
				mbp.setFileName(fileName);
				mulp.addBodyPart(mbp);
			}
		}
		// 设置信息内容,将Multipart 对象加入信息中
		msg.setContent(mulp);
		// 登陆邮件服务器进行用户验证
		Transport tran = session.getTransport(protocol);
		tran.connect(host, user, password);
		// 发送
		tran.sendMessage(msg, msg.getAllRecipients());
		bool = true;
		return bool;
	}

	/**
	 * @param args
	 * @throws MessagingException
	 * @throws AddressException
	 */
	public static void main(String[] args) throws AddressException,
			MessagingException {
		// 调试使用
		Map map = new HashMap<String, String>();
		map.put("jasper-el.jar", "D:\\apache-tomcat-6.0.29\\lib\\jasper-el.jar");
		map.put("RUNNING.txt", "D:\\apache-tomcat-6.0.29\\RUNNING.txt");
		//sendMail(true, "smtp", "smtp.126.com", 25, "con", "***",
		//		"con@126.com", "con@163.com", "答话稀有", "快点下在", map);
		sendMail("conkeyn@163.com", "答话稀有", "快点下在");

	}
}

 dd

 

分享到:
评论

相关推荐

    java发送邮件工具类

    Java发送邮件工具类是Java开发中常用的一种技术,主要用于企业级应用中发送通知、验证码、报表等信息。这个工具类通常基于JavaMail API实现,它允许开发者通过编程方式发送电子邮件。下面将详细介绍Java发送邮件的...

    java邮件发送工具类

    Java邮件发送工具类是开发过程中常见的一种实用组件,主要用于实现程序自动发送电子邮件的功能。在Java中,我们可以利用JavaMail API来实现这一目标。这个API提供了一系列接口和类,用于处理邮件的创建、发送以及...

    一个开源的Java基础工具包

    2、com.baijob.commonTools.mail.MailUtil邮件发送工具类,方法请参考注释 此工具类依赖javax.mail,请参考pom.xml添加依赖或手动下载 三、网络相关工具类 1、com.baijob.commonTools.net.AccessControl访问控制...

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

    ### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未...同时,利用调试工具深入理解邮件发送的具体流程也有助于快速定位和解决问题。

    mail.jar java邮件发送的jar包以及工具类

    本压缩包提供了所需的jar包以及一个工具类,使得邮件发送变得更加简单。 Java Mail API 是一个开源项目,它提供了与多种邮件协议(如SMTP、POP3、IMAP)交互的接口和实现。`mail.jar` 包含了这些接口和实现,例如 `...

    邮件发送 poi 二维码 条形码等java常用的工具类

    MailUtil:邮件工具类,包括发送纯文本邮件,带(1个/多个)附件的邮件, 群发邮件 NumberUtil:数字操作工具 包括精准数字运算,数据格式化 PageUtil:分页工具类, POIUtil:poi工具类,excel导出 QrCodeUtil...

    EmailUtils Java mail 邮件发送

    在Java编程领域,发送电子邮件是一项常见的任务,而`EmailUtils`是用于简化这一过程的工具类。`JavaMail`库提供了API,使得开发者能够通过Java程序来发送、接收和处理邮件。下面我们将深入探讨`EmailUtils`和`...

    常规JavaMail 邮件发送实用类

    总的来说,"常规JavaMail 邮件发送实用类"是一个集成了JavaMail API核心功能的自定义工具,通过封装邮件发送的复杂逻辑,简化了开发者的代码,提高了开发效率。文件列表中的`MailUtil.java`很可能就是这样一个实用类...

    java发送邮件要使用的jar包以及工具类

    总之,JavaMail API为Java开发者提供了强大的邮件处理能力,通过引入相应的jar包并编写简单的工具类,就能轻松地在应用中集成邮件发送功能。在实际开发中,记得根据具体的邮件需求进行适当的定制和扩展。

    ssh常用工具类

    5. **MailUtil.java**:邮件发送工具类,用于发送邮件,包括设置SMTP服务器、邮箱认证、添加收件人、抄送人、主题、正文、附件等功能。在系统自动化通知、用户服务等方面非常常见。 6. **FormatStyle.java**:这个...

    计算机网络课程设计报告-基于SMTP协议的JAVA邮件发送程序.doc

    4. **Java Util工具类**:为了提高代码的可重用性和可维护性,创建了一个`MailUtil`工具类,包含了一些常用的方法,如邮箱格式验证(`testMail()`)、SMTP连接测试(`testConnected()`)和邮件发送(`sendMail()`)....

    邮件源代码,可以发送多个附件

    【邮件源代码】是一种用于构建电子邮件发送功能的编程代码,它可以是用各种编程语言(如Java、Python、PHP等)编写的。在这个特定的案例中,我们讨论的是一个支持发送多个附件的邮件系统源码,这通常是通过SMTP...

    Java通过内容模板发送邮件,支持附件

    项目压缩包`mailUtil-master`很可能包含了完整的实现,包括邮件工具类、模板文件、配置文件等。通过分析源码,我们可以更深入地理解邮件发送和模板引擎的结合使用。 总结来说,这个项目提供了一个便捷的工具,允许...

    邮件邮箱发送接收源码

    在提供的压缩包文件"mailUtil-master"中,可能包含了一个邮件工具类库,这个库封装了上述发送和接收邮件的逻辑。开发者可以查看源代码,学习如何实现邮件功能,或者直接在自己的项目中使用这个库。 总的来说,理解...

    java邮件发送

    在"emailJAR.rar"这个文件中,可能包含了一个预编译的库,可能是开发者为了方便使用而封装的邮件发送工具类。通常,这样的库会提供一个简单的API,简化了上述步骤,使得邮件发送更加便捷。 总的来说,Java邮件发送...

    java邮件发送代码

    Java邮件发送是编程中常见的一项任务,特别是...总的来说,JavaMail API提供了一个强大且灵活的邮件发送功能,结合`MailUtil.java`这样的工具类,可以帮助开发者轻松地处理日常的邮件发送需求,同时有效防止乱码问题。

    springboot + rabbitmq发送邮件实战 使用RabbitMQ实现获取网易邮箱发送消息业务

    2.编写发送邮件工具类(类名称:MailUtil) 3.编写RabbitMQ配置文件 (类名称:RabbitConfig) 4.生产者发起调用(邮件数据要入MySQL数据库,业务类名称:TestServiceImpl) 5.消费者发送邮件(类名称:...

    使用JavaMail API 发送邮件

    在MyEclipse中,你可以创建一个测试类,将上述代码放入`main`方法中,运行以测试邮件发送功能。确保你的SMTP服务器设置正确,并且已启用不安全的客户端连接(如果需要SSL/TLS,需修改相关属性)。 总的来说,...

    java发送邮件源码(带必备jar包)

    `MailUtil.java`可能是封装了邮件发送逻辑的工具类,可能包含以下方法: 1. `createSession()`: 创建并配置Session对象。 2. `composeMessage()`: 创建Message对象,设置收件人、抄送人、密送人、主题和邮件内容。 3...

Global site tag (gtag.js) - Google Analytics