import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.MailSender; import org.springframework.mail.SimpleMailMessage; import org.springframework.stereotype.Service; @Service("mailService") public class MailService { @Autowired private MailSender mailSender; @Autowired private SimpleMailMessage alertMailMessage; public void sendMail(String from, String to, String subject, String body) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to); message.setSubject(subject); message.setText(body); mailSender.send(message); } public void sendAlertMail(String alert) { SimpleMailMessage mailMessage = new SimpleMailMessage(alertMailMessage); mailMessage.setText(alert); mailSender.send(mailMessage); } }
用了spring就得配置xml,配置文件如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd" > <context:component-scan base-package="cn.outofmemory.spring.mail" /> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.gmail.com"/> <property name="port" value="25"/> <property name="username" value="[email protected]"/> <property name="password" value="mypassword"/> <property name="javaMailProperties"> <props> <!-- Use SMTP transport protocol --> <prop key="mail.transport.protocol">smtp</prop> <!-- 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> <prop key="mail.debug">true</prop> </props> </property> </bean> <bean id="alertMailMessage" class="org.springframework.mail.SimpleMailMessage"> <property name="from"> <value>[email protected]</value> </property> <property name="to"> <value>[email protected]</value> </property> <property name="subject" value="Alert - Exception occurred. Please investigate"/> </bean> </beans>
如果你要用Gmail发邮件,需要确认JavaMail属性正确配置:
host=smtp.gmail.com port=25 username=your-gmail-username password=your-gmail-password mail.transport.protocol=smtp mail.smtp.auth=true mail.smtp.starttls.enable=true
最后是测试代码:
import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class MailServiceTest { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext("conf/spring.xml"); MailService mailService = (MailService) context.getBean("mailService"); mailService.sendMail("[email protected]", "[email protected]", "Testing123", "Testing only /n/n Hello Spring Email Sender"); mailService.sendAlertMail("Exception occurred"); } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10959.html