一个发送EMAIL的JavaBean程序

    学习了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: JavaBean  Email 
评论: 0 | 引用: 0 | 查看次数: 204
发表评论
用户名:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 500 字 | HTML代码允许 关闭 | 评论可修改 关闭