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();
}
}
分享到:
相关推荐
电子邮件发送在IT行业中是一项基础但至关重要的技术,尤其在企业通信和自动化流程中扮演着重要角色。本资源“电子邮件发送.rar”包含与ASP.NET相关的源码,提供了两种不同的方法来实现电子邮件的发送:SMTP(Simple ...
实用的邮件发送程序,可轻松集成至C/S架构及B/S架构的应用软件中,实现系统自动地向客户提供邮件发送服务。 其调用说明如下: 1、设置邮件服务器:void SetMailServer(char *iSrvHost,int iPort,char *iUserNo, char...
本资源"易语言源码JMAIL邮件发送模块源码.rar"是一个专门为易语言开发的邮件发送模块,包含了实现电子邮件功能的相关源代码,旨在帮助易语言用户轻松地在自己的程序中集成邮件发送功能。 首先,我们来看核心组件`...
在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...
易语言SMTP邮件发送是一种在编程中利用SMTP(Simple Mail Transfer Protocol)协议实现电子邮件发送的方法,主要应用于易语言编程环境中。SMTP是互联网上用于传输电子邮件的标准协议,它允许用户通过一个服务器将...
在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将详细探讨这些问题的原因及相应的解决方案。 ##...
在“基于SMTP的邮件发送程序的设计与实现”中,我们将探讨如何利用SMTP协议来构建一个邮件发送系统,尤其关注在VC++6.0环境下如何实现这一功能。 首先,我们需要理解SMTP的工作流程。SMTP服务器通过TCP/IP连接接收...
在Java编程语言中,邮件发送是一项常见的任务,用于与用户进行通信、发送通知或自动处理。"邮件发送依赖包"通常包含一组库和框架,这些工具使得开发人员能够轻松地构建和发送电子邮件。本篇文章将深入探讨邮件发送的...
总的来说,SMTP测试邮件发送工具是IT人员、系统管理员和普通用户排查邮件发送问题的得力助手,它简化了故障排除过程,提高了工作效率。通过理解和利用这些工具,你可以更有效地管理你的邮件通信并确保邮件系统的顺畅...
在IT行业中,邮件发送机是一种自动化工具,它能够批量发送电子邮件,极大地提高了工作效率,尤其适合于需要进行大规模通知、营销活动或数据交流的情况。标题提到的“邮件发送机”着重强调了其一次可发送1000个邮件的...
Java邮件发送是一个常见的任务,尤其在自动化通知、订阅服务或者数据报告等场景中。本教程将详细介绍如何使用Java实现邮件发送功能,同时提供了一个Jar包和demo源码供参考。 首先,我们需要理解JavaMail API,这是...
Java邮件发送组件是Java开发中用于发送电子邮件的工具,它使得开发者能够轻松地在应用程序中实现邮件功能。Java Mail API是实现这一功能的核心库,它提供了丰富的接口和类,允许程序进行邮件的创建、发送以及处理。...
核心代码中,关键类`SmtpMail`用于实现SMTP协议的邮件发送,它可能包含多个子类或成员,如委托和事件来处理邮件发送过程的监控,确保邮件发送的正确性和可靠性。 在程序设计中,`SmtpMail`类会封装SMTP连接、认证、...
邮件发送系统源码,功能:发送邮件,添加附件,注意:邮箱要开通pop服务 二、菜单功能 1、输入发件人的邮箱账号和密码 2、协议:根据不同邮箱填写不同协议,QQ邮箱就写smtp.qq.com 3、填写收件人邮箱账号 4、...
电子邮件发送程序是信息技术领域中一个基础且重要的工具,它允许用户通过互联网发送和接收电子信件。在现代商业和日常生活中,电子邮件已经成为沟通的主要方式之一。理解电子邮件发送程序的工作原理和相关技术对于...
根据给定的信息,本文将详细解释与邮件发送相关的技术知识点,包括使用Jmail组件、ASP脚本语言进行邮件发送的基本原理和技术实现。 ### Jmail组件介绍 Jmail是一款功能强大的邮件处理组件,它支持多种编程语言环境...
《C#邮件发送工具详解与应用》 C#是一种由微软公司推出的面向对象的编程语言,广泛应用于Windows平台上的软件开发。在C#中编写邮件发送工具,是开发者经常遇到的任务,尤其对于需要进行批量邮件发送的企业或个人,...
本篇文章将深入探讨ASP邮件发送的原理及实现方式,以及如何结合SQL数据库来读取数据进行邮件发送。 首先,ASP邮件发送的核心在于SMTP(Simple Mail Transfer Protocol)。SMTP是互联网上传输电子邮件的标准协议,...
在Linux环境下,使用纯C语言实现邮件发送是一个挑战性的任务,因为这涉及到对网络协议的理解以及C编程的熟练掌握。本教程将深入讲解如何利用POP和SMTP协议来完成这一过程。 首先,POP(Post Office Protocol)是...
邮件发送通常需要使用JavaMail API,一个开放源代码的Java库,它提供了一系列的类和接口来处理邮件的创建、发送以及接收。在JavaMail中,`com.sun.mail.smtp.SMTPTransport` 类是负责实际发送邮件的关键组件。 身份...