• 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
     
  • 相关阅读:
    nginx reload 与 restart 的区别
    求解一个数n的阶乘(递归求解 与 循环求解)
    类的加载机制
    JVM基础知识
    File类中常用的方法以及搜索路径下的包含指定词的文件
    给定10万数据,数据范围[0~1000),统计出现次数最多的10个数据,并打印出现次数
    TreeMap以及自定义排序的Comparable和Comparator的实现
    HashTable与LinkedHashMap
    HashMap
    Map接口
  • 原文地址:https://www.cnblogs.com/soundcode/p/6367590.html
Copyright © 2020-2023  润新知