【问题标题】:Spring MVC JavaMailSenderImpl parameters from properties for javaMailPropertiesjavaMailProperties 属性中的 Spring MVC JavaMailSenderImpl 参数
【发布时间】:2018-11-28 17:29:05
【问题描述】:

我的mvc.properties 文件中包含JavaMailSenderImpl 的弹簧配置,如下所示:

email.smtp.host=smtp.example.com
email.smtp.port=25
email.smtp.username=example
email.smtp.password=example
email.smtp.auth=false
email.smtp.starttls.enable=false

我在 servlet 中的邮件发送 bean 的 XML 配置如下:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${email.smtp.host}"/>
        <property name="port" value="${email.smtp.port}"/>
        <property name="username" value="${email.smtp.username}"/>
        <property name="password" value="${email.smtp.password}"/>
        <property name="protocol" value="smtp"/>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
            </props>
        </property>
    </bean>

我试图找到有关如何从属性文件中也为javaMailProperties 包含参数的信息,但我被卡住了。

我想实现这样的目标,但这不起作用:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="host" value="${email.smtp.host}"/>
            <property name="port" value="${email.smtp.port}"/>
            <property name="username" value="${email.smtp.username}"/>
            <property name="password" value="${email.smtp.password}"/>
            <property name="protocol" value="smtp"/>
            <property name="javaMailProperties">
                <props>
                    <prop key="mail.smtp.auth" value="${email.smtp.auth}"></prop>
                    <prop key="mail.smtp.starttls.enable" value="${email.smtp.starttls.enable}"></prop>
                </props>
            </property>
        </bean>

如何将这些属性也包含在javaMailProperties 中?

【问题讨论】:

    标签: spring spring-mvc properties smtp jakarta-mail


    【解决方案1】:

    我通过引用存储在配置文件中的设置来执行此操作的方式如下所示:

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${email.smtp.host}"/>
        <property name="port" value="${email.smtp.port}"/>
        <property name="username" value="${email.smtp.username}"/>
        <property name="password" value="${email.smtp.password}"/>
        <property name="protocol" value="smtp"/>
        <property name="javaMailProperties" ref="propertyConfigurer"/>
    </bean>
    
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:foo.properties</value>
                <value>classpath:mail.properties</value>
            </list>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
    </bean>
    

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 2013-03-17
      相关资源
      最近更新 更多