Java使用Spring发邮件详解编程语言

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

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论