Java实现发送电子邮件

1.导入JavaMail库:

首先,你需要下载并导入JavaMail库。你可以从Oracle官方网站上找到相关资源。

2.设置SMTP服务器属性:

你需要指定用于发送电子邮件的SMTP服务器的地址和端口。常见的SMTP服务器有Gmail(smtp.gmail.com),Outlook(smtp.office365.com)等。

String host = "smtp.gmail.com";
int port = 587;

3.配置会话属性:

创建一个Properties对象来配置会话属性,包括SMTP服务器身份验证、TLS加密等。这些属性将传递给Session.getInstance()方法来创建电子邮件会话。

Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", port);

4.创建会话:

使用之前设置的属性创建一个Session对象。你需要提供发送者的电子邮件地址和密码来进行身份验证。

String senderEmail = "your-email@gmail.com";
String password = "your-password";

Session session = Session.getInstance(properties, new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(senderEmail, password);
    }
});

5.创建消息:

使用MimeMessage类创建电子邮件消息。设置发送者、接收者、主题和正文等。

String recipientEmail = "recipient-email@example.com";
String subject = "Test Email";
String messageContent = "This is a test email.";

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(senderEmail));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail));
message.setSubject(subject);
message.setText(messageContent);

6.发送电子邮件:

使用Transport.send()方法发送创建的消息。

Transport.send(message);
System.out.println("Email sent successfully.");

7.完整的代码示例:

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class EmailSender {
    public static void main(String[] args) {
        String host = "smtp.gmail.com";
        int port = 587;

        String senderEmail = "your-email@gmail.com";
        String password = "your-password";

        String recipientEmail = "recipient-email@example.com";
        String subject = "Test Email";
        String messageContent = "This is a test email.";

        Properties properties = new Properties();
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", port);

        Session session = Session.getInstance(properties, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(senderEmail, password);
            }
        });

        try {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(senderEmail));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail));
            message.setSubject(subject);
            message.setText(messageContent);

            Transport.send(message);
            System.out.println("Email sent successfully.");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

注意事项:

请确保在运行代码之前,将your-email@gmail.com替换为实际的发送者电子邮件地址,your-password替换为发送者电子邮件的密码,并将recipient-email@example.com替换为接收者的电子邮件地址。

另外,请注意,如果你使用的是Gmail或类似的服务提供商,可能需要在你的邮箱设置中启用“允许较低安全性应用程序访问”选项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值