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; } }
相关推荐
-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 for windows emulate linux sendmail
linux5中sendmail所需要的安装文件
),相当于一个邮局,server端的软件,主要的功能有,接收MUA发来的邮件和把邮件发送给下一个MTA,可以说是一个邮件路由(mail router),server端的软件就属于MTA,现在开源的有sendmail,postfix,qmail等 ...
在perl中使用本机的sendmail发送邮件的代码如下: #!/usr/bin/perl use strict; my($r_mail) = 'xxxx@163.com'; my($s_mail) = 'root@abc.cn'; my($subject) = '邮件标题'; open(MAIL, '|/usr/lib/sendmail -t'); ...
linux下sendmail服务器的搭建
Linux_Sendmail_详解.pdf
Sendmail邮件服务器搭建 安装并配置sendmail服务器
SendMail.h This is the main header file for the application. It includes other project specific headers (including Resource.h) and declares the CSendMailApp application class. SendMail.cpp This ...
Linux 禁止sendmail 自启动
sendmail安装手册,Linux操作系统,正确安装配置步骤如文档所述
vbs sendmail.vbs ' Usage: ' sendmail -t <to> -f <from> -s "<subject>" -b "<message>"|-r "filename"|-d "directory" |-a "attachment filename" ' sendmail [-help|-?]
Sendmail发信认Sendmail发信认证.EXE证.EXE
<1>sendmail <2>qmail <3>webmail 3.使用的协议 smtp:(simple message transport protocol)简单消息传输协议 pop3:(post office protocol3)邮局协议3 4.术语 MTA: Mail Transport Agent 邮件传输代理,即指邮件...
Centos7 sendmail的配置步骤 Sendmail邮件服务器搭建 安装并配置sendmail服务器
Linux Sendmail 服务器详细安装配置手册
sendmail-8.12.8-4.i386.rpm sendmail-cf-8.12.8-4.i386.rpm sendmail-devel-8.12.8-4.i386.rpm sendmail-doc-8.12.8-4.i386.rpm
ubuntu下sendmail的配置,经过ubuntu14.04测试好用
利用php的sendmail组件,首先提高了成功率,其次由于不需要“发件人”,你甚至可以捏造一个“service@126.com”来发送邮件。 其次本程序发信环境,要求linux下的php环境即可! 经测试完好,保存奉送,希望大家喜欢...
java sendMail 邮件发送文件