java - 使用 Spring 从 Web 应用程序发送邮件

标签 java email spring-mvc

在我的网络应用程序中我想发送邮件。有没有办法用 Spring MVC 来做到这一点?最好的方法是什么?

谢谢

最佳答案

您可以使用Spring的邮件抽象层轻松发送电子邮件。在 applicationContext.xml 中定义以下 bean

<!-- Mail sender bean -->
<bean id="mailSender" 
        class="org.springframework.mail.javamail.JavaMailSenderImpl">          
<property name="host" value="my.smtp.host" />
<property name="username" value="my_username" />
<property name="password" value="my_password" />
</bean>

<!-- Simple mail template -->
<bean id="basicEmailMessage" 
        class="org.springframework.mail.SimpleMailMessage">
    <property name="from">
        <value>whateverSenderAddress</value>
     </property>
 </bean>

 <!-- Your service with sender and template injected -->
 <bean id="mySendMailService" 
        class="mypackage.MySendMailService">
    <property name="mailSender">
    <ref bean="mailSender" />
    </property>
    <property name="emailTemplate">
        <ref bean="basicEmailMessage" />
    </property>
 </bean>

然后,在mypackage.MySendMailService中:

public class SendMailService {
    private MailSender mailSender;
    private SimpleMailMessage emailTemplate;
    public void sendEmail(String to, String from, String subject, String body) 
                         throws MailException {
        SimpleMailMessage message = new SimpleMailMessage(this.emailTemplate);
        message.setTo(to);
        message.setFrom(from);
        message.setSubject(subject);
        message.setText(body);
        mailSender.send(message);
    }

    public void setMailSender(MailSender mailSender) {
        this.mailSender = mailSender;
    }
    public void setEmailTemplate(SimpleMailMessage emailTemplate) {
        this.emailTemplate = emailTemplate;
    }
}

关于java - 使用 Spring 从 Web 应用程序发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7808560/

相关文章:

java - Spring MVC - 在 Controller 中默认设置值

java - 我如何在 Spring 3 中将 @Aspect 与 @Controller 结合起来?

java - 区分 URL.openStream() 中的常见 Http 错误

java - 枚举与简单常量声明?

java - 如何以跨平台方式打开带有主题和正文的默认邮件程序?

php - 尝试用 php 发送 mysql 信息

html - 如何获得 Calibri 和指定的表格显示宽度?

java - Spring数据休息+Spring安全: @Secured not working

java - Spring:Propagation.REQUIRED 不工作

java - 将 Web 内容集成到桌面 Java 应用程序中