基于Servlet的简单发送邮件(163邮箱向其他邮箱发送邮件)

  1. 新建一个javaEE项目(不说了)

  2. 将SMTP服务都开了(如图)在这里插入图片描述
    在这里插入图片描述

  3. 添加jar包
    在这里插入图片描述

  4. javax.mail.jar:javax.mail.jar

  5. servlet-api.jar:这个可以在tomcat的lib中找到

  6. activation.jar:这个我当时新建一个maven项目下载的,你们可以去网上找

在src下新建一个SendEmail的java类

import java.util.Date;
import java.util.Properties;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.mail.*;
import javax.mail.internet.*;

@WebServlet("/SendEmail")
public class SendEmail extends HttpServlet {
    
    

    public String myEmailAccount = "你的邮箱";
    public String myEmailPassword = "授权码,不是你的邮箱密码";
    public String myEmailSMTPHost = "smtp.163.com";
    public String receiveMailAccount = "你要发送对象的邮箱";

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) {
    
    
        // 1. 创建参数配置, 用于连接邮件服务器的参数配置
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.smtp.host", myEmailSMTPHost);
        props.setProperty("mail.smtp.auth", "true");
        // 2. 根据配置创建会话对象, 用于和邮件服务器交互
        Session session = Session.getInstance(props);
        session.setDebug(true);
        // 设置为debug模式, 可以查看详细的发送 log
        MimeMessage message;
        try {
    
    
            message = createMimeMessage(session, myEmailAccount, receiveMailAccount);
            Transport transport = session.getTransport();
            transport.connect(myEmailAccount, myEmailPassword);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) {
    
    
        doPost(request, response);
    }
    public MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {
    
    
        // 1. 创建一封邮件
        MimeMessage message = new MimeMessage(session);
        // 2. From: 发件人
        message.setFrom(new InternetAddress(sendMail, "阿海测试邮件", "UTF-8"));
        // 3. To: 收件人
        message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "沙雕用户", "UTF-8"));
        // 4. Subject: 邮件主题
        message.setSubject("快去请如来佛祖!!!!", "UTF-8");
        // 5.发送的文本内容
        message.setContent("啦啦啦啦啦,成功啦,你真6", "text/html;charset=UTF-8");
        // 6. 设置发件时间
        message.setSentDate(new Date());
        // 7. 保存设置
        message.saveChanges();
        return message;
    }
}

web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>SendEmail</servlet-name>
        <servlet-class>SendEmail</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>SendEmail</servlet-name>
        <url-pattern>/SendEmail</url-pattern>
    </servlet-mapping>
</web-app>

运行后访问-----------http://localhost:8080/SendEmail
成功截图
在这里插入图片描述
本项目下载(含jar包):下载

猜你喜欢

转载自blog.csdn.net/weixin_43170526/article/details/111547859
今日推荐