用Spring發郵件1

/////////////////////////  可以參考一下 這個鏈接來自: http://hi.baidu.com/zzcc%5F8/blog/item/13746d189fb842bf4bedbc59.html  

//// http://www.blogjava.net/amigoxie/archive/2007/04/28/114310.html

// 下面這個例子可以通過測試:我們注意紅色字體

// Struts2 中進行的

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" >
    <beans>
    <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host">
            <value>mail.logicsolutions.com</value>
        </property>
        <property name="username">
            <value>ale.hao</value>
        </property>
        <property name="password">
            <value>logic123</value>
        </property>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
            </props>
        </property>
    </bean>

    <bean id="mailFactory" class="com.budco.bmp.core.email.TestMail.MailSenderFactory">
        <property name="javaMailSender">
            <ref bean="sender" />
        </property>
    </bean>

    <bean id="baseMail" class="com.budco.bmp.core.email.TestMail.BaseMailDefined">
        <property name="to">

<!-- 這是本人和同事的郵箱地址 兩個用戶的地址 可以寫多人的郵件地址-->
            <value>[email protected],[email protected]</value>
        </property>
        <property name="from">
            <value>[email protected]</value>
        </property>
        <property name="subject">
            <value>Test Spring Mail sender</value>
        </property>
        <property name="text">
            <value>this is a test spring mail !!!!!!!!!!! ok!</value>
        </property>
    </bean>
    </beans>

//////////////////////////////////////////

package com.budco.bmp.core.email.TestMail;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestApp2 {

    // activation.jar AND mail.jar import
    public static void main(final String[] args) throws Exception {

// 可以有多個配置文件.XML
        final ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
                new String[] { "com/budco/bmp/core/email/TestMail/TestMail2.xml" });
        final MailSenderFactory factory = (MailSenderFactory) ctx.getBean("mailFactory");
        final BaseMailDefined bmd = (BaseMailDefined) ctx.getBean("baseMail");

        factory.senderSimpleMail(bmd);
        factory.senderMimeMail(bmd);
        factory.senderHtmlMail(bmd);

    }
}
//////////////////////////////////////////

package com.budco.bmp.core.email.TestMail;

import java.io.File;
import java.util.Date;

import javax.mail.internet.MimeMessage;

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException;

public class MailSenderFactory {

    private JavaMailSender javaMailSender;

    public void setJavaMailSender(final JavaMailSender javaMailSender) {
        this.javaMailSender = javaMailSender;
    }

    /**
     *Simple mail send
     *
     * @param bmd
     */
    public void senderSimpleMail(final BaseMailDefined bmd) {
        final SimpleMailMessage msg = new SimpleMailMessage();
        msg.setFrom(bmd.getFrom());
        msg.setText(bmd.getText());
        msg.setTo(bmd.getTo());
        msg.setSubject(bmd.getSubject());
        javaMailSender.send(msg);
    }

/**
     * Add an attachment send
     *  可以向多人發mail
     * @param bmd
     * @throws MessagingException
     * @throws javax.mail.MessagingException
     */
    public void senderMimeMail(final BaseMailDefined bmd) throws Exception, javax.mail.MessagingException {
        final MimeMessage msg = javaMailSender.createMimeMessage();
        final MimeMessageHelper helper = new MimeMessageHelper(msg, true);
        // final InternetAddress[] iaToList = new
        // InternetAddress().parse(bmd.getTo());

        if (bmd.getTo() == null || bmd.getTo().length == 0) {
            return;
        } else {
            final InternetAddress[] address = new InternetAddress[bmd.getTo().length];
            int i = 0;
            for (final String s : bmd.getTo()) {
                address[i] = new InternetAddress(s);
                i++;
            }

            // helper.setTo(iaToList);
            msg.setRecipients(Message.RecipientType.TO, address);
            helper.setText(bmd.getText());
            helper.setFrom(bmd.getFrom());
            helper.setSubject(bmd.getSubject());
            helper.setSentDate(new Date());
            // Attachment
// 帶有附件
            helper.setText("<html><head>Test_Spring</head><body>Hello:Attachment!!!!!></body></html>", true);
               // 上傳的文件
            final FileSystemResource file = new FileSystemResource(new File("D:/t-mp12.rar"));
            helper.addAttachment("t-mp12.rar", file);
            javaMailSender.send(msg);
        }
    }



    /**
     * send Inline picture OR html E_mail
     *
     * @param bmd
     * @throws MessagingException
     * @throws javax.mail.MessagingException
     */
    public void senderHtmlMail(final BaseMailDefined bmd) throws MessagingException, javax.mail.MessagingException {
        final MimeMessage msg = javaMailSender.createMimeMessage();
        final MimeMessageHelper helper = new MimeMessageHelper(msg, true, "UTF-8");
        helper.setTo(bmd.getTo());
        // helper.setText(bmd.getText(), true);
        helper.setFrom(bmd.getFrom());
        helper.setSubject(bmd.getSubject());
        helper.setSentDate(new Date());
        // send Inline picture OR html E_mail

//帶有圖片的
        helper
                .setText(
                        "<html><head><meta http-equiv='content-type' content='text/html;charset=UTF-8'></head><body>Hello:<font color='red' size='10'>"
                                + bmd.getText() + "</font><br></br><img src='cid:identifier1235'></body></html>", true);
        final FileSystemResource res = new FileSystemResource(new File("D:/t-mp12/lingoes.png"));

        helper.addInline("identifier1235", res);

        javaMailSender.send(msg);
    }
}
//////////////////////////////////////////

package com.budco.bmp.core.email.TestMail;

public class BaseMailDefined {


    protected String from;
    protected String subject;
    protected String text;

    public String getText() {
        return text;
    }

        public String[] getTo() {
        return to;
    }

    public void setTo(final String[] to) {
        this.to = to;
    }

    protected String[] to;

    public String getFrom() {
        return from;
    }

    public String getSubject() {
        return subject;
    }

    public void setText(final String text) {
        this.text = text;
    }


    public void setFrom(final String from) {
        this.from = from;
    }

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

}


發佈了113 篇原創文章 · 獲贊 7 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章