<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

    ???發(fā)送郵件需要通過驗(yàn)證,我們需要建立一個(gè)帶有實(shí)現(xiàn)了Authenticator的Session.我們應(yīng)該了解,在用Java編寫JavaMail時(shí)是需要使用的驗(yàn)證的,但是,在Spring中沒有提供注入驗(yàn)證實(shí)現(xiàn)的功能(即注入Authenticator的實(shí)現(xiàn)).但是我們可以用以下方式加以實(shí)現(xiàn),下面就以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>

    實(shí)現(xiàn)我們自己的驗(yàn)證實(shí)現(xiàn)
    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);
    	}
    }
    ???編寫測(cè)試類發(fā)送郵件:
    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();
    	}
    }

    ???對(duì)于gmail端口的設(shè)置可以參考:http://mail.google.com/support/bin/a...y?answer=13287,個(gè)人認(rèn)為yahoo和 gmail 都希望我們使用驗(yàn)證,并且我們可以為每個(gè)郵件服務(wù)器設(shè)置不同的端口.如果沒有采用驗(yàn)證,與gmail的連接將會(huì)拋出一個(gè)沒有驗(yàn)證信息的異常!
    posted on 2006-06-08 19:05 zhangxl 閱讀(473) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(17)

    隨筆檔案(28)

    文章分類(30)

    文章檔案(30)

    相冊(cè)

    收藏夾(2)

    hibernate

    java基礎(chǔ)

    mysql

    xml

    關(guān)注

    壓力測(cè)試

    算法

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 96282
    • 排名 - 601

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲人成影院77777| 天天操夜夜操免费视频| 特级毛片全部免费播放| 亚洲美免无码中文字幕在线| 亚洲线精品一区二区三区| 又大又硬又爽免费视频| 免费av欧美国产在钱| 桃子视频在线观看高清免费视频| 特级毛片在线大全免费播放| 亚洲性色AV日韩在线观看| 亚洲宅男永久在线| 国产亚洲福利精品一区| 久久亚洲高清综合| 无码国产亚洲日韩国精品视频一区二区三区| 无码乱肉视频免费大全合集| 三年片在线观看免费观看大全动漫 | 国产成人免费片在线视频观看| 九九精品免费视频| **真实毛片免费观看| 未满十八18禁止免费无码网站 | 美腿丝袜亚洲综合| 全部免费毛片在线| 国产成人免费手机在线观看视频| 日韩一区二区a片免费观看| 91在线视频免费看| 久九九精品免费视频| 成人免费视频77777| 精品香蕉在线观看免费| 最近免费中文字幕大全免费 | 亚洲欧洲精品成人久久奇米网| 波多野结衣中文一区二区免费| 国产特级淫片免费看| 在线永久免费观看黄网站| 日本一道一区二区免费看 | 免费精品国自产拍在线播放| 真正全免费视频a毛片| 高清免费久久午夜精品| xxxxx做受大片在线观看免费| 一级做a爱过程免费视频高清| 一级午夜a毛片免费视频| 97国免费在线视频|