내 웹 응용 프로그램에서 메일을 보내려고합니다. Spring MVC로 할 수있는 방법이 있습니까? 그리고 그것을하는 가장 좋은 방법은 무엇입니까? Spring을 사용하여 웹 응용 프로그램에서 메일 보내기
는
2
A
답변
5
은 쉽게 이메일을 보내 봄의 메일 추상 계층을 사용할 수 있습니다. mypackage.MySendMailService
에, 당신의 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>
에서 다음 콩을 정의
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 웹 프레임 워크입니다 감사하고, 이메일과는 아무 상관이 없습니다. Spring 프레임 워크의 또 다른 부분은 메일 전송을 지원한다. chapter 24 of the ref guide을 살펴보십시오.
3
전자 메일 템플릿 시스템으로 Apache Velocity를 사용하고 있습니다. "VelocityEngine"인스턴스를 스프링 빈으로 정의하여 컨트롤러에 삽입 할 수 있습니다. 그러나 훨씬 깨끗한 해결책은 메일 전송 코드를 서비스에 넣고 컨트롤러에 서비스를 주입하는 것입니다.
@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"를 사용하여 전자 메일을 보낼 수 있습니다.
당신은 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. iPad 응용 프로그램에서 HTML 전자 메일 보내기
- 2. Java 프로그램에서 메일 보내기
- 3. 응용 프로그램에서 이미지 전자 메일 보내기
- 4. 내 iPhone 응용 프로그램에서 전자 메일 보내기
- 5. Windows 양식 응용 프로그램에서 전자 메일 보내기
- 6. facebook 응용 프로그램에서 친구에게 전자 메일 보내기
- 7. struts 1.2 응용 프로그램에서 메일 보내기
- 8. Windows 응용 프로그램에서 전자 메일 보내기 (C++)
- 9. C# 웹 응용 프로그램에서 MAPI를 사용하여 ASP.NET의 기본 웹 클라이언트를 사용하여 메일 보내기
- 10. 모바일 응용 프로그램을 사용하여 전자 메일 보내기
- 11. 웹 응용 프로그램 내에서 전자 메일 보내기
- 12. 메일 보내기 웹 사이트
- 13. Emacs 프로그램에서 전자 메일 보내기
- 14. vb.net을 사용하여 메일 보내기
- 15. System.Net.Mail을 사용하여 메일 보내기
- 16. AFNetworking을 사용하여 웹 서버에서 전자 메일 보내기
- 17. PHP를 사용하여 메일 보내기
- 18. 응용 프로그램에서 웹 서버로 이미지 보내기
- 19. RMAIL을 사용하여 전자 메일 보내기
- 20. CakePHP를 사용하여 메일 보내기
- 21. ASP.NET을 사용하여 메일 보내기
- 22. PHP를 사용하여 메일 보내기
- 23. msbuild를 사용하여 메일 보내기
- 24. ASP.NET을 사용하여 메일 보내기
- 25. SMTP 릴레이 - 콘솔 응용 프로그램에서 전자 메일 보내기
- 26. 스프링 프레임 워크 전자 메일 라이브러리를 사용하여 struts 2 응용 프로그램에서 메일 보내기
- 27. 별칭을 사용하여 연락처에 메일 보내기
- 28. 인 텐트를 사용하여 메일 보내기
- 29. 외부 SMTP 서버를 사용하지 않고 Java 응용 프로그램에서 메일 보내기
- 30. 콘솔 응용 프로그램에서 Nop Commerce 고객에게 메일 보내기 프로젝트
그래서, 문제는 무엇인가? 나는 방법이있을 것이라고 확신한다. 연구에 시간을 할애하십시오. – mre