• Spring在bean配置文件中定义电子邮件模板


    在上一篇Spring电子邮件教程,硬编码的所有电子邮件属性和消息的方法体中的内容,这是不实际的,应予以避免。应该考虑在Spring bean 配置文件中定义电子邮件模板。
    1.Spring的邮件发件人
    Java类使用 Spring的MailSender接口发送电子邮件,并使用 String.Format 传递变量bean配置文件替换电子邮件中的 '%s'。

    File : MailMail.java

    package com.yiibai.common;
    
    import org.springframework.mail.MailSender;
    import org.springframework.mail.SimpleMailMessage;
    
    public class MailMail
    {
    	private MailSender mailSender;
    	private SimpleMailMessage simpleMailMessage;
    	
    	public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) {
    		this.simpleMailMessage = simpleMailMessage;
    	}
    
    	public void setMailSender(MailSender mailSender) {
    		this.mailSender = mailSender;
    	}
    	
    	public void sendMail(String dear, String content) {
    
    	   SimpleMailMessage message = new SimpleMailMessage(simpleMailMessage);
    		
    	   message.setText(String.format(
    			simpleMailMessage.getText(), dear, content));
    
    	   mailSender.send(message);
    		
    	}	
    }

    2. Bean的配置文件

    定义电子邮件模板“customeMailMessage' 和邮件发件人信息的bean配置文件。

    File : Spring-Mail.xml

    <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.5.xsd">
    
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    	<property name="host" value="smtp.gmail.com" />
    	<property name="port" value="587" />
    	<property name="username" value="username" />
    	<property name="password" value="password" />
    		
    	<property name="javaMailProperties">
    	     <props>
               	<prop key="mail.smtp.auth">true</prop>
               	<prop key="mail.smtp.starttls.enable">true</prop>
           	     </props>
    	</property>
    </bean>
    	
    <bean id="mailMail" class="com.yiibai.common.MailMail">
    	<property name="mailSender" ref="mailSender" />
    	<property name="simpleMailMessage" ref="customeMailMessage" />
    </bean>
    	
    <bean id="customeMailMessage"
    	class="org.springframework.mail.SimpleMailMessage">
    
    	<property name="from" value="from@no-spam.com" />
    	<property name="to" value="to@no-spam.com" />
    	<property name="subject" value="Testing Subject" />
    	<property name="text">
    	   <value>
    		<![CDATA[
    			Dear %s,
    			Mail Content : %s
    		]]>
    	   </value>
            </property>
    </bean>
    
    </beans>

    4. 运行它

    package com.yiibai.common;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class App 
    {
        public static void main( String[] args )
        {
        	ApplicationContext context = 
               new ClassPathXmlApplicationContext("applicationContext.xml");
        	 
        	MailMail mm = (MailMail) context.getBean("mailMail");
            mm.sendMail("Yiibai", "This is text content");
            
        }
    }

    输出

    Dear Yiibai,
     Mail Content : This is text content
     
  • 相关阅读:
    Linux使用locate命令定位文件
    【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的详细实现
    数据结构—单链表(类C语言描写叙述)
    怎样訪问pcie整个4k的配置空间
    [Swift]LeetCode988. 从叶结点开始的最小字符串 | Smallest String Starting From Leaf
    [Swift]LeetCode985. 查询后的偶数和 | Sum of Even Numbers After Queries
    [Swift]LeetCode494. 目标和 | Target Sum
    [Swift]LeetCode493. 翻转对 | Reverse Pairs
    [Swift]LeetCode491. 递增子序列 | Increasing Subsequences
    [Swift]LeetCode488. 祖玛游戏 | Zuma Game
  • 原文地址:https://www.cnblogs.com/soundcode/p/6367590.html
Copyright © 2020-2023  润新知