0

シナリオ: ユーザーは、自分の電子メール アドレスを使用して連絡フォームを送信します。私が受け取る電子メールは、連絡先フォームに記入した電子メールの「送信元」である必要があります。代わりに取得するのは、Spring コンテキストで構成した gmail (foo@gmail.com) アカウントですが、setFromは次のようにコードで適切に設定されています。

public void sendContactNotification(final ContactForm contactForm) {
      MimeMessagePreparator preparator = new MimeMessagePreparator() {
        @SuppressWarnings({ "rawtypes", "unchecked" })
        public void prepare(MimeMessage mimeMessage) throws Exception {
             MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
             message.setTo(contact@foo.com);
             message.setFrom(contactForm.getEmail());
             message.setSubject("New contact message " + contactForm.getTopic());
             message.setReplyTo(contactForm.getEmail());
             message.setSentDate(new Date());
             Map model = new HashMap();              
             model.put("newMessage", contactForm);

             String text = VelocityEngineUtils.mergeTemplateIntoString(
                velocityEngine, "velocity/new_contact_message.vm", "UTF-8", model);
             message.setText(text, true);
          }
       };
       this.mailSender.send(preparator);      
}

Spring コンテキストでは、送信者は次のように構成されます。

<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="foo@gmail.com" />
<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>

ありがとう、エイドリアン

4

0 に答える 0