package com.test.mail;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;
/**
*收发邮件
*@author aa
*@version jdk1.4.1 tomcat5.1.0
*/public class MailBean {
/**MIME邮件对象*/
private MimeMessage mimeMsg=null;/**邮件会话对象*/
private Session mailSession=null;
/**Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象*/
private Multipart mp=null;/**
*构造函数,初始化
*/
public MailBean() {
} /**
* 发件初始化
*
*/
public void init() {
try {
Properties props = System.getProperties(); //获得系统属性对象
//props.put("mail.smtp.port","25");
props.put("mail.smtp.auth", "true");
mailSession = Session.getInstance(props, null); //获得邮件会话对象
mimeMsg = new MimeMessage(mailSession); //创建MIME邮件对象
mp = new MimeMultipart();
} catch (Exception e) {
e.printStackTrace();
}
}/**
*设置主题
*@param mailSubject 主题
*@return 返回设置主题是否成功,成功则true,否则false
*/
public boolean setSubject(String mailSubject) {
try {
mimeMsg.setSubject(mailSubject);
return true;
} catch (Exception e) {
return false;
}
}/**
*设置主体
*@param mailBody 主体
*@return 返回设置主体是否成功,成功则true,否则false
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent(
"<meta http-equiv=Content-Type content=text/html;charset=gb2312>"
+ mailBody,
"text/html;charset=gb2312");
mp.addBodyPart(bp);
return true;
} catch (Exception e) {
return false;
}
}/**
*添加附件
*@param filename 附件地址
*@return 返回添加附件是否成功,成功则true,否则false
*/
public boolean addAttach(String 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) {
return false;
}
}/**
*设置发件人
*@param from 发件人
*@return 返回设置发件人是否成功,成功则true,否则false
*/
public boolean setFrom(String from) {
try {
mimeMsg.setFrom(new InternetAddress(from)); //设置发信人
return true;
} catch (Exception e) {
return false;
}
}/**
*设置收件人
*@param to 收件人
*@return 返回设置收件人是否成功,成功则true,否则false
*/
public boolean setTo(String to) {
try {
mimeMsg.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse(to));
return true;
} catch (Exception e) {
return false;
}
}/**
*设置收件人
*@param copyto 收件人
*@return 返回设置收件人是否成功,成功则true,否则false
*/
public boolean setCopyTo(String copyto) {
try {
mimeMsg.setRecipients(
Message.RecipientType.CC,
(Address[]) InternetAddress.parse(copyto));
return true;
} catch (Exception e) {
return false;
}
} /**
*发件操作
* @param smtpServer
* @param smtpUser
* @param smtpPassword
* @return 返回发送成功信息
*/
public String send(String smtpServer,String smtpUser,String smtpPassword) {
String str = null;
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(smtpServer,smtpUser,smtpPassword);
transport.sendMessage(
mimeMsg,
mimeMsg.getRecipients(Message.RecipientType.TO));
transport.close();
str = "发邮件成功!";
} catch (Exception e) {
str = e.toString();
}
return str;
}/**
*收件操作
*@param popServer 收件服务器
*@param popUser 收件用户名
*@param popPassword 收件密码
*@return 返回收件结果,若不成功返回错误信息
*/
public String receive(
String popServer,
String popUser,
String popPassword) {
String str = "";
Store store = null;
Folder folder = null;
try {
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null);
store = session.getStore("pop3");
store.connect(popServer, popUser, popPassword);
folder = store.getDefaultFolder();
if (folder == null)
throw new Exception("No default folder");
folder = folder.getFolder("INBOX");
if (folder == null)
throw new Exception("No POP3 INBOX");
folder.open(Folder.READ_ONLY);
Message[] msgs = folder.getMessages();
for (int msgNum = 0; msgNum < msgs.length; msgNum++) {
str+= printMessage(msgs[msgNum]);
}
} catch (Exception ex) {
str+= ex.toString();
} finally {
try {
if (folder != null)
folder.close(false);
if (store != null)
store.close();
} catch (Exception ex2) {
str+= ex2.toString();
}
}
return str;
}/**
*显示邮件内容
*@param message 邮件对象
*@return 返回邮件内容
*/
public String printMessage(Message message) {
String str = "<table>";
try {
//From
String from =
((InternetAddress) message.getFrom()[0]).getPersonal();
if (from == null)
from = ((InternetAddress) message.getFrom()[0]).getAddress();
str += "<tr><Td>FROM: " + from + "</td></tR>";//Subject
String subject = message.getSubject();
str += "<tr><Td>SUBJECT: " + subject + "</td></tr>";Part messagePart = message;
Object content = messagePart.getContent();
if (content instanceof Multipart) {
messagePart = ((Multipart) content).getBodyPart(0);
}//ContentType
String contentType = messagePart.getContentType();
str+= "<tr><Td>CONTENT:"
+ contentType
+ "</tD></tr><tr><Td valign=top>";//Content
if (contentType.startsWith("text/plain")
|| contentType.startsWith("text/html")) {
InputStream is = messagePart.getInputStream();
BufferedReader reader =
new BufferedReader(new InputStreamReader(is));
String thisLine = reader.readLine();
while (thisLine != null) {
str += thisLine;
thisLine = reader.readLine();
}
}
str += "</tD></tr>";
} catch (Exception ex) {
str += "<tr><td>" + ex.toString() + "</tD></tR>";
}
str+= "</table>";
return str;
}}
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;
/**
*收发邮件
*@author aa
*@version jdk1.4.1 tomcat5.1.0
*/public class MailBean {
/**MIME邮件对象*/
private MimeMessage mimeMsg=null;/**邮件会话对象*/
private Session mailSession=null;
/**Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象*/
private Multipart mp=null;/**
*构造函数,初始化
*/
public MailBean() {
} /**
* 发件初始化
*
*/
public void init() {
try {
Properties props = System.getProperties(); //获得系统属性对象
//props.put("mail.smtp.port","25");
props.put("mail.smtp.auth", "true");
mailSession = Session.getInstance(props, null); //获得邮件会话对象
mimeMsg = new MimeMessage(mailSession); //创建MIME邮件对象
mp = new MimeMultipart();
} catch (Exception e) {
e.printStackTrace();
}
}/**
*设置主题
*@param mailSubject 主题
*@return 返回设置主题是否成功,成功则true,否则false
*/
public boolean setSubject(String mailSubject) {
try {
mimeMsg.setSubject(mailSubject);
return true;
} catch (Exception e) {
return false;
}
}/**
*设置主体
*@param mailBody 主体
*@return 返回设置主体是否成功,成功则true,否则false
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent(
"<meta http-equiv=Content-Type content=text/html;charset=gb2312>"
+ mailBody,
"text/html;charset=gb2312");
mp.addBodyPart(bp);
return true;
} catch (Exception e) {
return false;
}
}/**
*添加附件
*@param filename 附件地址
*@return 返回添加附件是否成功,成功则true,否则false
*/
public boolean addAttach(String 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) {
return false;
}
}/**
*设置发件人
*@param from 发件人
*@return 返回设置发件人是否成功,成功则true,否则false
*/
public boolean setFrom(String from) {
try {
mimeMsg.setFrom(new InternetAddress(from)); //设置发信人
return true;
} catch (Exception e) {
return false;
}
}/**
*设置收件人
*@param to 收件人
*@return 返回设置收件人是否成功,成功则true,否则false
*/
public boolean setTo(String to) {
try {
mimeMsg.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse(to));
return true;
} catch (Exception e) {
return false;
}
}/**
*设置收件人
*@param copyto 收件人
*@return 返回设置收件人是否成功,成功则true,否则false
*/
public boolean setCopyTo(String copyto) {
try {
mimeMsg.setRecipients(
Message.RecipientType.CC,
(Address[]) InternetAddress.parse(copyto));
return true;
} catch (Exception e) {
return false;
}
} /**
*发件操作
* @param smtpServer
* @param smtpUser
* @param smtpPassword
* @return 返回发送成功信息
*/
public String send(String smtpServer,String smtpUser,String smtpPassword) {
String str = null;
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(smtpServer,smtpUser,smtpPassword);
transport.sendMessage(
mimeMsg,
mimeMsg.getRecipients(Message.RecipientType.TO));
transport.close();
str = "发邮件成功!";
} catch (Exception e) {
str = e.toString();
}
return str;
}/**
*收件操作
*@param popServer 收件服务器
*@param popUser 收件用户名
*@param popPassword 收件密码
*@return 返回收件结果,若不成功返回错误信息
*/
public String receive(
String popServer,
String popUser,
String popPassword) {
String str = "";
Store store = null;
Folder folder = null;
try {
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null);
store = session.getStore("pop3");
store.connect(popServer, popUser, popPassword);
folder = store.getDefaultFolder();
if (folder == null)
throw new Exception("No default folder");
folder = folder.getFolder("INBOX");
if (folder == null)
throw new Exception("No POP3 INBOX");
folder.open(Folder.READ_ONLY);
Message[] msgs = folder.getMessages();
for (int msgNum = 0; msgNum < msgs.length; msgNum++) {
str+= printMessage(msgs[msgNum]);
}
} catch (Exception ex) {
str+= ex.toString();
} finally {
try {
if (folder != null)
folder.close(false);
if (store != null)
store.close();
} catch (Exception ex2) {
str+= ex2.toString();
}
}
return str;
}/**
*显示邮件内容
*@param message 邮件对象
*@return 返回邮件内容
*/
public String printMessage(Message message) {
String str = "<table>";
try {
//From
String from =
((InternetAddress) message.getFrom()[0]).getPersonal();
if (from == null)
from = ((InternetAddress) message.getFrom()[0]).getAddress();
str += "<tr><Td>FROM: " + from + "</td></tR>";//Subject
String subject = message.getSubject();
str += "<tr><Td>SUBJECT: " + subject + "</td></tr>";Part messagePart = message;
Object content = messagePart.getContent();
if (content instanceof Multipart) {
messagePart = ((Multipart) content).getBodyPart(0);
}//ContentType
String contentType = messagePart.getContentType();
str+= "<tr><Td>CONTENT:"
+ contentType
+ "</tD></tr><tr><Td valign=top>";//Content
if (contentType.startsWith("text/plain")
|| contentType.startsWith("text/html")) {
InputStream is = messagePart.getInputStream();
BufferedReader reader =
new BufferedReader(new InputStreamReader(is));
String thisLine = reader.readLine();
while (thisLine != null) {
str += thisLine;
thisLine = reader.readLine();
}
}
str += "</tD></tr>";
} catch (Exception ex) {
str += "<tr><td>" + ex.toString() + "</tD></tR>";
}
str+= "</table>";
return str;
}}
解决方案 »
- hql 用了order by+rownum ORA-00918: 未明确定义列 在线等指教!!!
- int id = Integer.parseInt(request.getParameter("id"));更改参数类型
- 图片拖动的简单问题
- 请问利用jxl插入图片的问题?代码和错误见内!急求!!!!!
- 请教一个SQL语句
- 如何用javascrpit判断同1表单的2个提交按钮
- tomcat运行项目,一段时间之后自动停止
- 请教对oracle的驱动程序字符串怎么写?
- CSDN-请各位前辈帮忙看一下晚辈的外包项目,传授一些接私活的经验!!
- spring+jpa整合时创建实体报错
- 谁有JDK的中文帮助文档,给小弟一份,谢谢了!
- jsp连接mysql数据库驱动,用何种方式。
调用方法:new Email().sendMail(接收邮箱地址,邮件主题,邮件体内容)
AuthenticatorUtil.java清单:
package p1;
import javax.mail.PasswordAuthentication;
//当smtp需要验证时所需要用到的验证类
class AuthenticatorUtil
extends javax.mail.Authenticator {
private String strUser;
private String strPwd; public AuthenticatorUtil(String user, String password) {
this.strUser = user;
this.strPwd = password;
}EMail.java清单:
package p1;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import p1.AuthenticatorUtil;public class EMail{ public EMail() {} //此方法执行邮件发送的操作
//mailTo:目标邮件地址
//mailSubject:邮件主题
//mailBody:邮件体,在这里是邮件正文
public boolean sendMail(String mailTo,String mailSubject,String mailBody){
try {
//初始化所有必要的参数
String smtpServer = "smtp.bbbb.com";//smtp服务器
String smtpAuth = "true";//smtp服务器是否需要进行验证
String smtpUser = "uuuuu";//smtp分配的用户名(就是你的E-Mail地址中@符号前面部分)
String smtpPassword = "pppp";//登陆口令
String from = "[email protected]";//用于在对方收到的邮件中作为发送人地址显示
String to = mailTo;//邮件需要发送到的目标邮件地址
String subject = mailSubject;//邮件主题
String text = mailBody;//邮件体,在这里是邮件正文
Properties props = new Properties();//构造Properties,作为后面的Session参数容器
Session sendMailSession;
Transport transport;
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", smtpAuth);
if ("true".equals(smtpAuth)) {
//如果smtp服务器需要验证,则构建AuthertiactorUtil用于mail session的创建
AuthenticatorUtil authutil = new AuthenticatorUtil(smtpUser, smtpPassword);
sendMailSession = Session.getInstance(props, authutil);
}
else {
sendMailSession = Session.getInstance(props);
} //设置是否是调试状态,如果这里设置为true的话,则会在控制台输出发送过程,输出信息类似于在telnet上发送邮件
sendMailSession.setDebug(true);
//初始化邮件消息
Message message = new MimeMessage(sendMailSession);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(mailTo));
message.setSubject(subject);
message.setSentDate(new Date());
message.setText(text);
message.saveChanges();
transport = sendMailSession.getTransport("smtp");//此次会话是发送邮件(smtp)
transport.send(message, message.getAllRecipients());//从这里可以看出来,可以设置多个发送目的地址
transport.close();
}catch (Exception e) {
System.err.println("邮件发送失败:" + e.getMessage());
return false;
}
return true;
}
} protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(strUser, strPwd);
}
}
调用方法:new Email().sendMail(接收邮箱地址,邮件主题,邮件体内容)
AuthenticatorUtil.java清单:
package p1;
import javax.mail.PasswordAuthentication;
//当smtp需要验证时所需要用到的验证类
class AuthenticatorUtil
extends javax.mail.Authenticator {
private String strUser;
private String strPwd; public AuthenticatorUtil(String user, String password) {
this.strUser = user;
this.strPwd = password;
}EMail.java清单:
package p1;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import p1.AuthenticatorUtil;public class EMail{ public EMail() {} //此方法执行邮件发送的操作
//mailTo:目标邮件地址
//mailSubject:邮件主题
//mailBody:邮件体,在这里是邮件正文
public boolean sendMail(String mailTo,String mailSubject,String mailBody){
try {
//初始化所有必要的参数
String smtpServer = "smtp.bbbb.com";//smtp服务器
String smtpAuth = "true";//smtp服务器是否需要进行验证
String smtpUser = "uuuuu";//smtp分配的用户名(就是你的E-Mail地址中@符号前面部分)
String smtpPassword = "pppp";//登陆口令
String from = "[email protected]";//用于在对方收到的邮件中作为发送人地址显示
String to = mailTo;//邮件需要发送到的目标邮件地址
String subject = mailSubject;//邮件主题
String text = mailBody;//邮件体,在这里是邮件正文
Properties props = new Properties();//构造Properties,作为后面的Session参数容器
Session sendMailSession;
Transport transport;
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", smtpAuth);
if ("true".equals(smtpAuth)) {
//如果smtp服务器需要验证,则构建AuthertiactorUtil用于mail session的创建
AuthenticatorUtil authutil = new AuthenticatorUtil(smtpUser, smtpPassword);
sendMailSession = Session.getInstance(props, authutil);
}
else {
sendMailSession = Session.getInstance(props);
} //设置是否是调试状态,如果这里设置为true的话,则会在控制台输出发送过程,输出信息类似于在telnet上发送邮件
sendMailSession.setDebug(true);
//初始化邮件消息
Message message = new MimeMessage(sendMailSession);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(mailTo));
message.setSubject(subject);
message.setSentDate(new Date());
message.setText(text);
message.saveChanges();
transport = sendMailSession.getTransport("smtp");//此次会话是发送邮件(smtp)
transport.send(message, message.getAllRecipients());//从这里可以看出来,可以设置多个发送目的地址
transport.close();
}catch (Exception e) {
System.err.println("邮件发送失败:" + e.getMessage());
return false;
}
return true;
}
} protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(strUser, strPwd);
}
}