Отправка электронной почты Spring через Google () - PullRequest
1 голос
/ 17 августа 2011

Код ниже работает хорошо

Но мой вопрос заключается в том, как программно установить «javaMailProperties»?Потому что я хотел бы установить ssl / tsl из кода.Я не мог получить доступ к этим свойствам, я не знаю, почему, спасибо за решение и объяснение.

SimpleMailMessage message=(SimpleMailMessage)SpringUtil.getContext().
getBean("templateMessage");

JavaMailSenderImpl mailSender = (JavaMailSenderImpl)SpringUtil.getContext()
.getBean("mailSender"); 

mailSender.send(message);

--applicationcontext.xml--

<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="your gmail address"/>
   <property name="password" value="your 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="templateMessage" class="org.springframework.mail.SimpleMailMessage" >
<property name="from" value="from@gmail.com"/>
    <property name="to" value="to@gmail.com"/>              
    <property name="subject" value="subject"/>
    <property name="text" value="hello"/>               
 </bean>

(я не хочу использовать подход javax.mail, его спросили)

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

Использование:

mailSender.getJavaMailProperties().setProperty("mail.smtp.starttls.enable", "true");

То же самое для других свойств, которые вы хотите установить программно.

EDIT:

Я проверил исходный код класса JavaMailSenderImpl:

/**
 * Allow Map access to the JavaMail properties of this sender,
 * with the option to add or override specific entries.
 * <p>Useful for specifying entries directly, for example via
 * "javaMailProperties[mail.smtp.auth]".
 */
public Properties getJavaMailProperties() {
    return this.javaMailProperties;
}

Как видите, getJavaMailProperties является публичным методом и должен быть доступен для вас. Моя версия Spring Framework - 3.0.5.

0 голосов
/ 17 августа 2011

Быстрый Google не подтвержден. Вызовите setProperty (строковый ключ, строковое значение) для mailSender.getJavaMailProperties.setProperty ("mail.smtp.auth", true)

http://download.oracle.com/javase/6/docs/api/java/util/Properties.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...