sendMail
package net.chnbs.common.mail; 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.Multipart; import javax.mail.PasswordAuthentication; 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; import javax.mail.internet.MimeUtility; import net.chnbs.finance.constants.BusinessConstants; import net.chnbs.util.SystemGlobals; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Component; /** * <p>Description:use the javamail to send email!Must use sun's mail.jar,no apache jar. </p> */ @Component public class SendMail { public final static Log log = LogFactory.getLog(SendMail.class); public static void main(String[] args) { String to = SystemGlobals.getProperty("NOTICE_MAIL_ADDRESS"); log.info(to); SendMail mail = new SendMail(); mail.setTo("system@qq.net"); mail.setFrom("system@qq.net"); mail.setSmtpServer("system@qq.net"); mail.setUserName("system@qq.net"); mail.setPassword(""); mail.setSubject("关于网站有客户申请来电的通知"); mail.setContent(String.format(BusinessConstants.NOTICE_CONTENT_STRING, "1342604332","小伙子哦")); mail.send(); } private String to; //接收人 private String from; //发送人 private String smtpServer; //smtp地址. private String userName; private String password; private String subject; private String content; // 记录所有附件文件的集合,发送邮件的附件 List<String> attachments = new ArrayList<String>(); public SendMail() { super(); } public SendMail(String to, String from, String smtpServer, String userName, String password, String subject, String content) { this.to = to; this.from = from; this.smtpServer = smtpServer; this.userName = userName; this.password = password; this.subject = subject; this.content = content; } //将字符串转换为中文,否则标题会发生乱码现象,QQ邮箱为UTF-8.用GBK.GB2312都会乱码. public String translateChinese(String strText) { try { // MimeUtility.encodeText(String text, String charset, String // encoding) throws java.io.UnsupportedEncodingException // text 头值 . charset 字符集。如果此参数为 null,则使用平台的默认字符集。 // encoding 要使用的编码。当前支持的值为 "B" 和 "Q"。如果此参数为 null,则在大部分字符使用 ASCII // 字符集编码时使用 "Q" 编码;其他情况使用 "B" 编码。 strText = MimeUtility.encodeText(new String(strText.getBytes(), "UTF-8"), "UTF-8", "B"); } catch (Exception e) { e.printStackTrace(); } return strText; } //增加附件 public void addAttachment(String fname){ attachments.add(fname); } public boolean send(){ //创建邮件Session所需的Properties对象.API建议使用set而不是put(putall). Properties props=new Properties(); props.setProperty("mail.smtp.host", smtpServer); props.setProperty("mail.smtp.auth", "true"); //创建Session对象,代表JavaMail中的一次邮件会话. //Authenticator==>Java mail的身份验证,如QQ邮箱是需要验证的.所以需要用户名,密码. //PasswordAuthentication==>系统的密码验证.内部类获取,或者干脆写个静态类也可以. Session session=Session.getDefaultInstance(props, new Authenticator() { public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(userName, password); } } ); try { //构造MimeMessage并设置相关属性值,MimeMessage就是实际的电子邮件对象. MimeMessage msg=new MimeMessage(session); //设置发件人 msg.setFrom(new InternetAddress(from)); //设置收件人,为数组,可输入多个地址. InternetAddress[] addresses={new InternetAddress(to)}; //Message.RecipientType==>TO(主要接收人),CC(抄送),BCC(密件抄送) msg.setRecipients(Message.RecipientType.TO, addresses); //设置邮件主题,如果不是UTF-8就要转换下. //subject=translateChinese(subject); msg.setSubject(subject); //=====================正文部分=========== //构造Multipart容器 Multipart mp=new MimeMultipart(); //=====================正文文字部分=========== //向Multipart添加正文 MimeBodyPart mbpContent=new MimeBodyPart(); mbpContent.setText(content); //将BodyPart添加到MultiPart容器中 mp.addBodyPart(mbpContent); //=====================正文附件部分=========== //向MulitPart添加附件,遍历附件列表,将所有文件添加到邮件消息里 for(String efile:attachments){ MimeBodyPart mbpFile=new MimeBodyPart(); //以文件名创建FileDataSource对象 FileDataSource fds=new FileDataSource(efile); //处理附件 mbpFile.setDataHandler(new DataHandler(fds)); mbpFile.setFileName(fds.getName()); //将BodyPart添加到Multipart容器中 mp.addBodyPart(mbpFile); } attachments.clear(); //向MimeMessage添加Multipart msg.setContent(mp); msg.setSentDate(new Date()); //发送邮件,使用如下方法! Transport.send(msg); log.info("邮件发送成功!--------->"+this.to+"----"+this.getContent()); } catch (Exception e) { e.printStackTrace(); return false; } return true; } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getSmtpServer() { return smtpServer; } public void setSmtpServer(String smtpServer) { this.smtpServer = smtpServer; } 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 getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
相关推荐
在Linux系统中,Sendmail是一款历史悠久且广泛应用的邮件传输代理(MTA)软件,它负责在互联网上发送和接收电子邮件。在Linux5环境下,安装Sendmail是构建服务器基础架构的重要步骤,尤其对于需要处理大量电子邮件...
### sendmail服务器的搭建 #### 一、原理介绍 Sendmail是一种邮件传输代理(MTA),主要用于在Linux或Unix系统中处理电子邮件的发送和接收。它支持多种协议,包括SMTP(简单邮件传输协议)、POP3(邮局协议版本3)...
**标题:“sendmail”** **描述详解:** 在IT领域,`sendmail`是一个历史悠久的邮件传输代理(MTA),广泛用于Unix-like系统,用于发送和转发电子邮件。它在服务器端扮演着关键角色,允许系统通过SMTP(Simple ...
在Windows环境中,使用sendmail发送邮件可能并非直截了当,因为sendmail通常是Linux环境下的一个标准组件。但在Windows上,我们可以通过模拟Linux环境或使用兼容的替代方案来实现这一功能。以下是一份详细的步骤指南...
Sendmail 邮件服务器搭建 Sendmail 邮件服务器是一种流行的开源邮件服务器软件,广泛应用于 Linux 操作系统中。在本篇文章中,我们将介绍如何搭建和配置 Sendmail 邮件服务器,包括安装 Sendmail 软件包、配置 ...
"SendMail"是一个用于发送电子邮件的工具,主要适用于Java开发者。这个工具可能包含了处理SMTP(简单邮件传输协议)和相关的邮件APIs,使得开发者能够轻松地在他们的应用程序中集成邮件发送功能。根据提供的标签,...
"SENDMAIL"是一款专为Delphi开发者设计的强大邮件发送控件,它主要针对Delphi 6和7这两个版本提供服务。这款控件的核心优势在于其能够绕过邮件服务器的验证过程,这意味着用户在发送邮件时无需经过常规的身份验证...
### Linux 禁止sendmail 自启动 在Linux系统中,`sendmail`是一个非常重要的邮件传输代理(MTA),它负责处理系统内的电子邮件发送任务。然而,在某些情况下,我们可能并不希望`sendmail`服务随系统启动而自动运行...
在Windows环境下使用Sendmail,首先需要下载并安装sendmail.exe,这是Sendmail的执行文件。同时,ReadMe.html文件包含了详细的安装和配置指南,是初学者的重要参考文档。sendmail.ini则是Sendmail的配置文件,通过...
【标题】:sendmail发送邮件的命令行工具 在IT领域,sendmail是一个经典的命令行工具,用于在Unix/Linux环境中发送电子邮件。它以其简洁的接口和强大的功能而著名,不仅适用于系统管理员进行自动化任务,也适合开发...
### Linux Sendmail配置详解 #### 一、电子邮件系统概述 在深入探讨Sendmail配置之前,我们首先了解一下电子邮件系统的几个核心组件及其作用。 1. **MUA(Mail User Agent,邮件用户代理)**:MUA是用户与邮件...
下面将详细介绍Sendmail的使用方法、关键概念以及与其相关的技术点。 1. **SMTP服务器配置**:在使用Sendmail之前,你需要知道SMTP服务器的地址和端口。这通常可以从你的邮件服务提供商(如Gmail, Yahoo, 或者自建...
-rw-r--r-- 1 leon leon 3494 2009-08-21 13:05 sendmail_8.14.3-9ubuntu1_all.deb -rw-r--r-- 1 leon leon 357946 2009-08-21 13:05 sendmail-base_8.14.3-9ubuntu1_all.deb -rw-r--r-- 1 leon leon 733018 2009-08...
标题中的"sendmail.7z"表明这是一个与sendmail相关的压缩文件,sendmail是一个广泛使用的邮件传输代理,常用于在Linux或Unix系统中处理电子邮件。它允许程序通过SMTP(Simple Mail Transfer Protocol)发送邮件,是...
sendmail for windows emulate linux sendmail
Linux Sendmail 服务器详细安装配置手册 SendMail 服务器配置任务是一个复杂的过程,需要逐步完成多个任务,包括配置单邮件服务器、配置邮件别名、配置邮件列表、配置邮件访问控制列表、配置双邮件服务器等。下面...
Linux 中 Sendmail 发送邮件成功但收不到邮件解决方案 Sendmail 是一个流行的邮件传输代理(Mail Transfer Agent,MTA),它可以帮助用户发送电子邮件。但是,在 Linux 中使用 Sendmail 发送邮件时,可能会遇到...
这三个安装包——sendmail-cf、sendmail-doc和sendmail-devel,都是sendmail系统的不同组成部分,针对不同的需求和用途。 1. **sendmail-cf**:配置文件集 sendmail-cf-8.13.1-2.i386.rpm 包含了sendmail的配置...
标题中的"sendmail-8.13.1-2.i386"指的是一个特定版本的Sendmail邮件服务器软件,这是互联网上广泛使用的MTA(邮件传输代理)。RPM是Red Hat Package Manager的缩写,是一种在Linux系统中管理软件包的工具,尤其常见...