package com.vutc.common.view;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
/**
* Title: 使用JavaMail发送邮件
* Description: 使用JavaMail包发送电子邮件,可发送多附件。
* Copyright: Copyright (c) 2008
* Filename: JavaMail.java
*
* @version 1.0
*/
public class JavaMail {
String to = ""; //收件人
String from = ""; //发件人
String host = ""; //SMTP主机
String username = ""; //发件人邮箱用户名
String password = ""; //发件人邮箱密码
String filename = ""; //附件文件名
String subject = ""; //邮件主题
String content = ""; //邮件正文
Vector<String> file = new Vector<String>(); //附件文件集合
/**
* 默认构造器
*/
public JavaMail() {
}
/**
* 构造器,提供直接的参数传入
*/
public JavaMail(String to, String from, String smtpServer, String username,
String password, String subject, String content) {
this.to = to;
this.from = from;
this.host = smtpServer;
this.username = username;
this.password = password;
this.subject = subject;
this.content = content;
}
/**
* 往附件组合中添加附件
*/
public void attachfile(String fname) {
file.addElement(fname);
}
/**
* 发送邮件
* boolean 成功为true,反之为false
*/
public boolean sendMail() {
//构造mail session
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
//构造MimeMessage 并设定基本的值
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, address);
subject = transferChinese(subject);
msg.setSubject(subject);
//构造Multipart
Multipart mp = new MimeMultipart();
//向Multipart添加正文
MimeBodyPart mbpContent = new MimeBodyPart();
mbpContent.setText(content);
//向MimeMessage添加(Multipart代表正文)
mp.addBodyPart(mbpContent);
//向Multipart添加附件
Enumeration<String> efile = file.elements();
while (efile.hasMoreElements()) {
MimeBodyPart mbpFile = new MimeBodyPart();
filename = efile.nextElement().toString();
FileDataSource fds = new FileDataSource(filename);
mbpFile.setDataHandler(new DataHandler(fds));
mbpFile.setFileName(fds.getName());
//向MimeMessage添加(Multipart代表附件)
mp.addBodyPart(mbpFile);
}
file.removeAllElements();
//向Multipart添加MimeMessage
msg.setContent(mp);
msg.setSentDate(new Date());
//发送邮件
Transport.send(msg);
} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
return false;
}
return true;
}
/**
* 主方法,用于测试
*/
public static void main(String[] args) {
JavaMail sendmail = new JavaMail();
sendmail.setHost("smtp.163.com");
sendmail.setUserName("wiiln");
sendmail.setPassWord("123456");
sendmail.setTo("wiiln@yeah.net");
sendmail.setFrom("wiiln@163.com");
sendmail.setSubject("主题测试!");
sendmail.setContent("内容测试!");
sendmail.attachfile("c:/files/a.txt");
sendmail.attachfile("c:/files/bang.rar");
sendmail.sendMail();
}
/**
* 把主题转换为中文
*/
private String transferChinese(String strText) {
try {
strText = MimeUtility.encodeText(new String(strText.getBytes(),"GB2312"), "GB2312", "B");
} catch (Exception e) {
e.printStackTrace();
}
return strText;
}
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 getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public Vector<String> getFile() {
return file;
}
public void setFile(Vector<String> file) {
this.file = file;
}
public String getTo() {
return to;
}
public String getFrom() {
return from;
}
public String getHost() {
return host;
}
public String getSubject() {
return subject;
}
public String getContent() {
return content;
}
public void setTo(String to) {
this.to = to;
}
public void setFrom(String from) {
this.from = from;
}
public void setHost(String host) {
this.host = host;
}
public void setUserName(String usn) {
this.username = usn;
}
public void setPassWord(String pwd) {
this.password = pwd;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setContent(String content) {
this.content = content;
}
}
分享到:
相关推荐
javamail-1_3_3_01邮件发送组件。
用于邮件发送开发,网上很难找的,我花了很久时间才找到,一直收藏在电脑里!
Jenkins构建结果发送邮件所需jar包,本人发表的文章标题为《使用Jenkins-ant-jmeter发送构建结果到指定邮箱报错的问题》所需jar包
JAVA mail源码,内容从网上获得经消化整理而来。包内有mail.jar、activation.jar、Java Mail常见错误.docx
Java mail-1.4.7.jar,java发送邮件jar包。通过这个Jar包可实现基于Java的邮件发送,可以应用于Loadrunner或Jmeter中的测试报告邮件发送
javamail-1.4.4.jar包 springMVC邮件发送
javamail发送邮件;支持群发、单次发送;文本发送,html发送
javamail-1.3.2.jar 开发soap使用。java邮件发送
标签:ant-javamail-1.9.4.jar,ant,javamail,1.9.4,jar包下载,依赖包
javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,
javaMail发送邮件服务,附源码,源码亲测有效,采用maven工程,也包含mail-1.4.7.jar包
使用javamail,commons-mail发送邮件实例。 内含: eclipse工程文件夹 所用到的几个最新jar包,如commons-mail,jaf(activation)等。
java简单--邮件发送.txt java简单--邮件发送.txt
http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-android-app的源码,已实现可发送邮件。
是在你用java编写新件邮件、修改邮件、发送邮件、接收邮件的包,很有用。
使用javamail发送邮件所要用到的两个jar包: 1. mail.jar 2. activation.jar 注:一般只用mail.jar包就可以了
NULL 博文链接:https://llying.iteye.com/blog/406660
在需要发送邮件的类或者JSP中实现如下操作: 1) 导包 a) import com.jzscce.ccliu.mail.SendMail; 2) 在特定的方法中调用send方法 a) SendMail.send("邮件发送给谁就写谁的邮箱地址", "邮件标题","邮件内容");
发送邮件封装的jar,下载后可以直接使用
javamail发送邮件实例 javamail 发送邮件 文本编辑器 kindeditor