2
A
回答
5
您可以使用Spring郵件抽象層可以輕鬆地發送電子郵件。定義你的applicationContext.xml
<!-- 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;
}
}
+0
謝謝這就是我一直在尋找的 – Khalifa
1
Spring MVC是一個Web框架,它無關的電子郵件。 Spring框架的另一部分確實支持郵件發送。看看chapter 24 of the ref guide。
3
我使用Apache Velocity作爲電子郵件模板系統。您可以將「VelocityEngine」的實例定義爲spring bean並將其注入到控制器中。然而,更清潔的解決方案是將郵件發送代碼放入服務中,並將您的服務注入到控制器中。
@Autowired private VelocityEngine velocityEngine;
@Autowired private JavaMailSender mailSender;
MimeMessagePreparator preparator = new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setTo("[email protected]");
message.setFrom("[email protected]");
message.setSubject("You got mail!");
Map<String, Object> model = new HashMap<String, Object>();
model.put("param1", new Date());
String text =
VelocityEngineUtils.mergeTemplateIntoString(
velocityEngine,
"com/myapp/mailtemplates/email.vm",
model
);
mimeMessage.setText(text,"utf-8", "html");
mimeMessage.setHeader("Content-Type", "text/html; charset=utf-8");
}
};
mailSender.send(preparator);
HashMap可用於傳遞參數,然後您可以在您的速度模板中使用該參數。 然後,您可以使用「JavaMailSender」發送您的電子郵件,該郵件也可以定義爲spring bean。
可以定義mailSender和velocityEngine豆與此類似:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.mail.com" />
<property name="username" value="sender" />
<property name="password" value="password" />
<property name="javaMailProperties">
<props>
<!-- Use SMTP-AUTH to authenticate to SMTP server -->
<prop key="mail.smtp.auth">true</prop>
<!-- Use TLS to encrypt communication with SMTP server -->
<!-- <prop key="mail.smtp.starttls.enable">true</prop> -->
</props>
</property>
</bean>
<!-- Apache Velocity Email Template Engine -->
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<value>
resource.loader=class
class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
</value>
</property>
</bean>
相關問題
- 1. 發送和Spring Web應用程序的電子郵件
- 2. 從C#應用程序發送郵件
- 3. 從php應用程序發送郵件
- 4. 從應用程序發送郵件
- 5. 從OSX應用程序發送郵件
- 6. 從Web應用程序內部發送/接收電子郵件?
- 7. 如何從Java Web應用程序發送電子郵件
- 8. 我怎麼能從web應用程序發送郵件
- 9. 如何從web應用程序發送電子郵件?
- 10. 如何從Web應用程序發送郵件給多個reciepients?
- 11. 無法從Java Web應用程序發送電子郵件
- 12. 用rails應用程序發送郵件
- 13. 用Android應用程序發送郵件
- 14. 無法使用SendGrid從.NET Web應用程序發送電子郵件
- 15. 從Rails Web應用程序發送電子郵件而不使用smtp
- 16. 使用skpsmtpmessage問題從iphone應用程序發送郵件
- 17. 發送郵件從Gmail使用SMTPMailer flex AIR應用程序
- 18. 使用Dependency Service從Xamarin.Forms應用程序發送電子郵件
- 19. 使用MFMail從應用程序發送電子郵件
- 20. iPhone使用MFMailComposer從應用程序發送電子郵件?
- 21. 使用Gmail從CakePHP應用程序發送電子郵件
- 22. 從應用程序的郵件中發送郵件
- 23. 使用應用程序腳本使用郵件發送附件
- 24. 從Web應用程序發送短信
- 25. 從Web應用程序發送短信
- 26. Spring MVC + JSP應用程序發送電子郵件頁面
- 27. iPhone發送郵件應用程序
- 28. 用Spring發送郵件
- 29. 在Web應用程序中發送電子郵件
- 30. Web應用程序發送電子郵件警報
那麼,有什麼問題嗎?我確信有一種方法。花一些時間研究。 – mre