使用JAVA发送邮件

这里用java代码编写发送邮件我采用jar包,需要先点击这里下载三个jar包:这三个包分别为:additionnal.jar;activation.jar;mail.jar。这三个包缺一不可,如果少添加或未添加均会报下面这个错误:

Caused by: java.lang.ClassNotFoundException: javax.activation.DataHandler
Caused by: java.lang.ClassNotFoundException: myjava.awt.datatransfer.Transferable


下面演示:

一.下载并导入jar包

1.下载jar包

点击这里去网站下载jar包

使用JAVA发送邮件_第1张图片

分别点击这三个位置进入

使用JAVA发送邮件_第2张图片

按这个流程分别下载好三个jar包。

2.导入jar包

导入jar包到项目流程:

(1)复制三个jar包,在项目中创建一个lib文件把这三个jar包粘贴上去:具体流程见下面步骤

第一步:鼠标右键文件点击NEW,点击Directory新建一个lib文件。

使用JAVA发送邮件_第3张图片

第二步:复制粘贴三个jar包到lib文件下

使用JAVA发送邮件_第4张图片

第三步:同时选中这三个jar包鼠标右键,点击下面的Add as library...

使用JAVA发送邮件_第5张图片

二.写代码

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EmailSender {

    public static void main(String[] args) {
        // 设置邮件服务器的属性
        Properties properties = new Properties();
        //SMTP服务器地址
        properties.put("mail.smtp.host", "smtp.qq.com");

        properties.put("mail.smtp.port", "25");
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");

        // 获取邮件会话对象
        Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
              
                return new PasswordAuthentication("[email protected]", "your_password");
            }
        });

        try {
            // 创建邮件消息对象
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("[email protected]"));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
            message.setSubject("Test Email");
            message.setText("Hello, this is a test email sent using JavaMail API!");

            // 发送邮件
            Transport.send(message);
            System.out.println("Email sent successfully!");

        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

为了便于理解,这里我解释下上面代码部分内容怎么填写

smtp.example.com[email protected]your_password[email protected]替换为实际的SMTP服务器地址、发件人邮箱、授权码和收件人邮箱。

SMTP服务器地址,实际上是代收发服务器地址,是由邮箱服务商提供的。例如,常见的QQ邮箱的SMTP服务器地址为smtp.qq.com,端口号为25;搜狐邮箱的SMTP服务器地址为smtp.sohu.com;HotMail邮箱的SMTP服务器地址为smtp.live.com。需要注意的是,不同的服务商SMTP服务器地址可能会有所不同,具体地址应向各自的邮件服务提供商查询。

网易邮箱的SMTP服务器地址是smtp.163.com。发送邮件时,您可以使用以下SMTP服务器地址和端口号进行配置:smtp.163.com(端口:25)

使用JAVA发送邮件_第6张图片

上面图片的授权码获取流程

使用QQ邮箱发送邮件需要开启SMTP服务,具体操作步骤如下:

  1. 登录QQ邮箱网页版(https://mail.qq.com/)。
  2. 点击右上角的设置图标,选择“账户”。
  3. 在“账户”页面中,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,点击“开启服务”按钮。
  4. 在弹出的窗口中,选择“SMTP服务”并点击“确定”。

 使用JAVA发送邮件_第7张图片使用JAVA发送邮件_第8张图片

使用JAVA发送邮件_第9张图片

把这个授权码粘贴到上面代码

然后运行代码即可!

你可能感兴趣的:(java,开发语言)