<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 28,  comments - 15,  trackbacks - 0

    ???發送郵件需要通過驗證,我們需要建立一個帶有實現了Authenticator的Session.我們應該了解,在用Java編寫JavaMail時是需要使用的驗證的,但是,在Spring中沒有提供注入驗證實現的功能(即注入Authenticator的實現).但是我們可以用以下方式加以實現,下面就以gmail郵件為例說明:
    ???在Spring中的配置信息如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans
    							http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    
            <!-- our Authenticator implementation -->
    	<bean id="smtpAuthenticator"
    		class="forums.mailtest.SmtpAuthenticator">
    		<constructor-arg value="yourname@gmail.com" />
    		<constructor-arg value="password" />
    	</bean>
    
            <!-- now setup an authenticated session -->
    	<bean id="mailSession" class="javax.mail.Session"
    		factory-method="getInstance">
    		<constructor-arg>
    			<props>
    				<prop key="mail.smtp.auth">true</prop>
    				<prop key="mail.smtp.socketFactory.port">465</prop>
    				<prop key="mail.smtp.socketFactory.class">
    					javax.net.ssl.SSLSocketFactory
    				</prop>
    				<prop key="mail.smtp.socketFactory.fallback">
    					false
    				</prop>
    			</props>
    		</constructor-arg>
    		<constructor-arg ref="smtpAuthenticator" />
    	</bean>
    
            <!-- and configure the MailSender with the authenticated session -->
    	<bean id="mailSender"
    		class="org.springframework.mail.javamail.JavaMailSenderImpl">
    		<property name="host" value="smtp.gmail.com" />
    		<property name="session" ref="mailSession" />
    	</bean>
    
    	<!-- this is a template message that we can pre-load with default state -->
    	<bean id="templateMessage"
    		class="org.springframework.mail.SimpleMailMessage">
    		<property name="from" value="yourname@gmail.com" />
    		<property name="subject" value="Testing" />
    	</bean>
    
    	<bean id="mailTest" class="forums.mailtest.MailTest">
    		<constructor-arg ref="mailSender" />
    		<constructor-arg ref="templateMessage" />
    	</bean>
    </beans>

    實現我們自己的驗證實現
    package forums.mailtest;
    
    import javax.mail.Authenticator;
    import javax.mail.PasswordAuthentication;
    
    public class SmtpAuthenticator extends Authenticator {
    	private String username;
    	private String password;
    	
    	public SmtpAuthenticator(String username, String password) {
    		super();
    		this.username = username;
    		this.password = password;
    	}
    
    	public PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
    	}
    }
    ???編寫測試類發送郵件:
    package forums.mailtest;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.mail.MailException;
    import org.springframework.mail.MailSender;
    import org.springframework.mail.SimpleMailMessage;
    
    public class MailTest {
    	private MailSender mailSender;
    	private SimpleMailMessage templateMessage;
    	public MailTest(MailSender mailSender, SimpleMailMessage templateMessage) {
    		super();
    		this.mailSender = mailSender;
    		this.templateMessage = templateMessage;
    	}
    	
    	public void sendMeMail() {
    		SimpleMailMessage msg = new SimpleMailMessage(templateMessage);
    		msg.setTo("test@example.com");
    		msg.setText("This is a test.\nGo Spring!\n");
    		try {
    			this.mailSender.send(msg);
    		} catch (MailException e) {
    			System.err.println("Didn't work.");
    			e.printStackTrace();
    		}
    	}
    	
    	public static final void main(String[] args) {
    		ApplicationContext appCtx = new ClassPathXmlApplicationContext(new String[] {
    				"forums/mailtest/application-config.xml"
    		});
    		
    		MailTest tester = (MailTest) appCtx.getBean("mailTest");
    		tester.sendMeMail();
    	}
    }

    ???對于gmail端口的設置可以參考:http://mail.google.com/support/bin/a...y?answer=13287,個人認為yahoo和 gmail 都希望我們使用驗證,并且我們可以為每個郵件服務器設置不同的端口.如果沒有采用驗證,與gmail的連接將會拋出一個沒有驗證信息的異常!
    posted on 2006-06-08 19:05 zhangxl 閱讀(478) 評論(0)  編輯  收藏 所屬分類: Spring
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(1)

    隨筆分類(17)

    隨筆檔案(28)

    文章分類(30)

    文章檔案(30)

    相冊

    收藏夾(2)

    hibernate

    java基礎

    mysql

    xml

    關注

    壓力測試

    算法

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 96796
    • 排名 - 600

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最近2019年免费中文字幕高清| 最近中文字幕mv免费高清在线| 中文字幕天天躁日日躁狠狠躁免费| 亚洲一区精品无码| 亚洲天堂2016| 九九热久久免费视频| 无码日韩精品一区二区免费| 中文字幕第一页亚洲| 亚洲国产综合精品中文第一| 精品一卡2卡三卡4卡免费视频| 免费精品国产自产拍观看| 亚洲卡一卡2卡三卡4卡无卡三| 成a人片亚洲日本久久| 日韩国产免费一区二区三区| 国产AV无码专区亚洲精品| 久久亚洲AV成人无码国产电影| 久久久久久国产精品免费无码| 亚洲第一页中文字幕| 久久久久成人片免费观看蜜芽 | 亚洲sm另类一区二区三区| 91精品国产免费| 激情综合亚洲色婷婷五月| 久久精品成人免费网站| 亚洲高清资源在线观看| 日韩视频免费在线观看| 亚洲日韩精品无码一区二区三区| 爱丫爱丫影院在线观看免费| 国产亚洲精品自在线观看| 日本免费在线观看| 国产成人亚洲综合一区| 亚洲一区二区三区乱码A| 美景之屋4在线未删减免费| 日本v片免费一区二区三区| 亚洲国产日韩在线一区| 1000部禁片黄的免费看| 久久亚洲国产成人精品性色| 久久精品国产免费一区| 在线综合亚洲欧洲综合网站| 亚洲一级特黄大片在线观看| 99久久这里只精品国产免费| jizz18免费视频|