一个发送EMAIL的JavaBean程序
作者:Starland 日期:2004-10-19 17:51:02
学习了JAVA、XML,然后把教科书上的程序改了改,做了这个发送EMAIL的JavaBean。
EMAIL帐户的配置文件smtp.xml放在 /WEB-INF/classes/ 下
源文件如下: 用户名、密码用于SMTP验证
<?xml version="1.0" encoding="UTF-8"?>
<smtp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="smtp.xsd">
<server>192.168.1.1</server>
<sender>a@abc.com</sender>
<user>a</user>
<password>a</password>
</smtp>
JAVA源程序如下:
package com.starland.mail;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.util.*;
import java.io.*;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class SendMail
{
private InternetAddress[] address = null;
private String server = "";
private String from = "";
private String user = "";
private String password = "";
private String to = "";
private String subject = "";
private String text = "";
boolean sessionDebug = false;
public SendMail()
{
}
// 发送邮件
public void send()
{
try
{
JAXBContext jc = JAXBContext.newInstance("com.starland.mail.smtp");
Unmarshaller u = jc.createUnmarshaller();
// 读取XML文件
com.starland.mail.smtp.Smtp mail = (com.starland.mail.smtp.Smtp) u.unmarshal(this.getClass().getResourceAsStream("/smtp.xml"));
// 设置Mail 服务器参数
if (mail.getServer() != null) server = mail.getServer();
if (mail.getSender() != null) from = mail.getSender();
if (mail.getUser() != null) user = mail.getUser();
if (mail.getPassword() != null) password = mail.getPassword();
// 设置邮件服务器和协议
Properties props = new Properties();
props.put("mail.host", server);
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
// 建立会话服务
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props, null);
mailSession.setDebug(sessionDebug);
Message msg = new MimeMessage(mailSession);
// 设置发送者
msg.setFrom(new InternetAddress(from));
// 设置接受者
address = InternetAddress.parse(to, false);
msg.setRecipients(Message.RecipientType.TO, address);
// 设置邮件主题
msg.setSubject(subject);
// 设置发送时间
msg.setSentDate(new Date());
// 设置 MIME 类型为 "text/plain"的邮件正文
msg.setText(text);
// SMTP服务器验证
Transport tp = mailSession.getTransport("smtp");
tp.connect(server, user, password);
// 邮件发送
msg.saveChanges();
tp.sendMessage(msg, address);
}
catch (MessagingException mex)
{
mex.printStackTrace();
}
catch (JAXBException je)
{
je.printStackTrace();
}
}
//设置收信人
public void setTo(String value)
{
if (value != null)
to = value;
}
//设置主题
public void setSubject(String value)
{
if (value != null)
subject = value;
}
//设置正文
public void setText(String value)
{
if (value != null)
text = value;
}
}
上一篇
下一篇
文章来自:
Tags: