JavaMail的实现

今天研究了一下JavaMail,总算对它有了点新的认识.
需要两个包,mail.jar,activation.jar.
以下是实现代码:
[code]
package javamaildemo;

import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.AuthenticationFailedException;
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;

public class EmailUtil {

//要发送Email地址
private String mailTo;
//Mail发送的起始地址
private String mailFrom;
//smtp的地址
private String smtpHost;
//是否采用debug模式
private boolean debug = false;
//邮件主题
private String subject;
//邮件内容
private String msgContent;
//邮件类型
private String msgContentMimeType="text/html;charset=UTF-8";
//邮件附件列表
private List attachedFileList;
//附件的位置
private String messageBasePath;

public EmailUtil()
{
super();
}

/*
* 填充Email内容,包括发件人,收件人,主题,主体,附件,发信日期
* @param Session,MimeMessage
*/
public void fillMail(Session session,MimeMessage msg)throws IOException, MessagingException
{
String fileName;
Multipart mPart=new MimeMultipart();
if(mailFrom != null)
{
msg.setFrom(new InternetAddress(mailFrom));
System.out.println("发送人Email地址: " + mailFrom);
}
else
{
System.out.println("没有指定发送人邮件地址!");
return;
}

if(mailTo !=null)
{
InternetAddress[] address = InternetAddress.parse(mailTo);
msg.setRecipients(Message.RecipientType.TO, address);
System.out.println("收件人Email地址: "+mailTo);
}
else
{
System.out.println("没有指定收件人邮件地址!");
return;
}
msg.setSubject(subject);
InternetAddress[] replyAddress = {new InternetAddress(mailFrom)};
msg.setReplyTo(replyAddress);

MimeBodyPart mBodyContent = new MimeBodyPart();
if(msgContent != null)
{
mBodyContent.setContent(msgContent, msgContentMimeType);
}
else
{
mBodyContent.setContent("",msgContentMimeType);
}
mPart.addBodyPart(mBodyContent);

if(attachedFileList != null)
{
for(Iterator i=attachedFileList.iterator();i.hasNext();)
{
fileName = (String)i.next();
MimeBodyPart mBodyPart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(messageBasePath + fileName);
System.out.println("Mail发送的附件为: "+messageBasePath + fileName);
mBodyPart.setDataHandler(new DataHandler(fds));
mBodyPart.setFileName(fileName);
mPart.addBodyPart(mBodyPart);
}
}
msg.setContent(mPart);
msg.setSentDate(new Date());
}

/*
* 发送Email,返回0表示邮件发送成功,返回3表示邮件发送失败
* @return int
*/
public int sendEmail() throws IOException,MessagingException
{
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.auth", "true");

MailAuthenticator auth = new MailAuthenticator();
Session session = Session.getInstance(props,auth);
session.setDebug(debug);
MimeMessage msg = new MimeMessage(session);

Transport trans = null;
try
{
fillMail(session,msg);
trans = session.getTransport("smtp");
try
{
trans.connect(smtpHost,auth.USER,auth.PASSWORD);
}
catch(AuthenticationFailedException e)
{
e.printStackTrace();
System.out.println("连接邮件服务器错误!");
return 3;
}
catch(MessagingException e)
{
System.out.println("连接邮件服务器错误!");
return 3;
}
trans.send(msg);
trans.close();
}
catch(MessagingException mex)
{
System.out.println("发送邮件失败!");
mex.printStackTrace();
Exception ex = null;
if((ex=mex.getNextException())!=null)
{
System.out.println(ex.toString());
ex.printStackTrace();
}
return 3;
}
finally
{
try{
if(trans != null && trans.isConnected())
trans.close();
}catch(Exception e){
System.out.println(e.toString());
}
}
System.out.println("发送邮件成功!");
return 0;
}

class MailAuthenticator extends Authenticator
{
private String USER="帐号";
private String PASSWORD="密码";
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USER,PASSWORD);
}
}

public boolean isDebug() {
return debug;
}

public void setDebug(boolean debug) {
this.debug = debug;
}

public String getMailFrom() {
return mailFrom;
}

public void setMailFrom(String mailFrom) {
this.mailFrom = mailFrom;
}

public String getMailTo() {
return mailTo;
}

public void setMailTo(String mailTo) {
this.mailTo = mailTo;
}

public String getMsgContent() {
return msgContent;
}

public void setMsgContent(String msgContent) {
this.msgContent = msgContent;
}

public String getSmtpHost() {
return smtpHost;
}

public void setSmtpHost(String smtpHost) {
this.smtpHost = smtpHost;
}

public String getSubject() {
return subject;
}

public void setSubject(String subject) {
this.subject = subject;
}

public String getMsgContentMimeType() {
return msgContentMimeType;
}

public void setMsgContentMimeType(String msgContentMimeType) {
this.msgContentMimeType = msgContentMimeType;
}

public List getAttachedFileList() {
return attachedFileList;
}

public void setAttachedFileList(List attachedFileList) {
this.attachedFileList = attachedFileList;
}

public String getMessageBasePath() {
return messageBasePath;
}

public void setMessageBasePath(String messageBasePath) {
this.messageBasePath = messageBasePath;
}
}
[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值