1

アプリケーションがオンデマンドでメールを送信できるようにしたいと思います。現在、 Gmail設定の設定について詳しく説明しているwww.mykong.comのチュートリアルを使用しています。

ただし、注釈付きのスプリングコントローラーに構成設定を取得できません。次の使用は避けたいです。

ApplicationContext context = new FileSystemXmlApplicationContext(email-context.xml");
MailMail mm = (MailMail) context.getBean("mailMail");
mm.send(message);

私の調査から、これはかなり眉をひそめているようです。私はいくつかのことを試しましたが、どれも正しいBeanを見つけられず、nullpointerexceptionを生成するようには見えません。これを必要なコントローラーに追加する方法はあります@Property(mailMail)@Autowired private mailMail?または、設定をメールコンテキストからJava自体に移動する必要がありますか?

私のファイルは以下の通りです:

EmailSender.java

public class EmailSender {

@Autowired
private MailSender mailSender;

public void sendMail(String subject, String msg) {

    SimpleMailMessage message = new SimpleMailMessage();

    message.setFrom("beesden@*.com");
    message.setTo("beesden@*.com");
    message.setSubject(subject);
    message.setText(msg);
    mailSender.send(message);   
    }
}

PageController

@RequestMapping(value = { "/{name}" }, method = RequestMethod.GET)
public String showPage(@PathVariable("name") String name, HttpServletRequest request, Model model) {
    logger.debug("Page request: " + name);      
    mm.sendMail("Hi","Test");       
    return "webpage";
}

email-context.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="toby@gmail.com" />
    <property name="password" value="tobytobytoby" />

    <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="org.system.EmailSender">
    <property name="mailSender" ref="mailSender" />
</bean>

(ここでユーザー名とパスワードを変更したことに注意してください。システムでは正しいです...)

どうもありがとう

4

0 に答える 0