Java邮箱发送测试

一、pom.xml中添加依赖

<!--    邮箱配置-->
    <!--邮箱依赖-->
    <dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <version>1.4.7</version>
    </dependency>
    <!--spring支持-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>5.0.0.RELEASE</version>
    </dependency>

二、设置发送邮箱开启POPS/SMTP服务,复制密钥。(如图所示)
在这里插入图片描述
三、在applicationContext.xml中配置连接

<!--    邮箱配置,修改email和密钥其他保持不变-->
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.qq.com"/>
        <property name="port" value="465"/>
        <property name="username" value="xxx@qq.com"/>//email
        <property name="password" value="xxxx"/>//POPS/SMTP密钥
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.ssl.enable">true</prop>
            </props>
        </property>
    </bean>

四、定义发送接口

package com.bsuc.service;

import org.springframework.transaction.annotation.Transactional;

import javax.mail.MessagingException;

/**
 * @author rceng
 * @version 1.0.0
 * @ClassName MailSenderSrvServices.java
 * @createTime 2021年04月27日 09:38:00
 * 邮箱接口
 */
public interface MailSenderSrvService {
    /*
     * 普通格式发送
     * @recipient 收件人地址
     * @subject 主题
     * @content 正文
     */
     @Transactional
    void sendEmail(String recipient,String subject,String content);

    /*带抄送
     * */
    void sendHtmlEmail(String recipient,String subject,String content) throws MessagingException, Exception;
}

五、编写发送实现类

package com.bsuc.service.impl;

import com.bsuc.service.MailSenderSrvService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.mail.Message;
import javax.mail.MessagingException;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.internet.MimeMessage;
/**
 * @author rceng
 * @version 1.0.0
 * @ClassName MailSenderSrvServiceImpl.java
 * @createTime 2021年04月27日 09:40:00
 */
@Service("MailSenderSrvService")
public class MailSenderSrvServiceImpl implements MailSenderSrvService {

   @Autowired
    private JavaMailSenderImpl javaMailSender;

    public void setMailSender(JavaMailSenderImpl javaMailSender) {
     this.javaMailSender = javaMailSender;
    }

    @Override
    public void sendEmail(String recipient, String subject, String content) {
       MimeMessage mimeMessage = javaMailSender.createMimeMessage();
       try {
        MimeMessageHelper messageHelper = new MimeMessageHelper((MimeMessage) mimeMessage,true,"UTF-8");
        messageHelper.setFrom("xxxx@qq.com");//发件人
        messageHelper.setTo(recipient);
        messageHelper.setSubject(subject);
        messageHelper.setText(content,true);//true代表支持html格式
        javaMailSender.send((MimeMessage) mimeMessage);
       } catch (MessagingException e) {
        e.printStackTrace();
       }
    }

    @Override
    public void sendHtmlEmail(String recipient, String subject, String content) throws MessagingException, Exception {
     MimeMessage mimeMessage = javaMailSender.createMimeMessage();
      try {
       MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
       messageHelper.setFrom("xxx@qq.com");//发件人
       messageHelper.setTo(recipient);
       messageHelper.setSubject(subject);
       messageHelper.setText(content,true);
       mimeMessage.setRecipients(Message.RecipientType.CC,"xxxx@qq.com");//抄送人
       javaMailSender.send(mimeMessage);
      } catch (MessagingException e) {
       e.printStackTrace();
      }
    }
}

六、编写测试类

package com.bsuc.tests;

import com.bsuc.service.MailSenderSrvService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @author rceng
 * @version 1.0.0
 * @ClassName TestMail.java
 * @createTime 2021年04月27日 09:51:00
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:applicationContext.xml" })
public class TestMail {

    //private static MailSenderSrvService mailsend;
    @Autowired
    private MailSenderSrvService mailsend;


    @Test
    public void testmaila(){
        String to = "xxxx@qq.com";  //收件人地址
        String subject = "this is new email";   //邮件标题
        String content = "好好学习,天天向上";    //邮件内容
        mailsend.sendEmail(to,subject,content);    //发送邮件
    }


    public MailSenderSrvService getMailsend(){
        return mailsend;
    }

    public void setMailsend(MailSenderSrvService mailsend){
        this.mailsend = mailsend;
    }
}

``` 
一个简易版的邮箱测试完成,注意提前配置日志文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值