📜  Java-发送电子邮件(1)

📅  最后修改于: 2023-12-03 15:16:02.147000             🧑  作者: Mango

Java-发送电子邮件

在Java中,我们可以使用JavaMail API来发送电子邮件。JavaMail API是一个用于发送和接收邮件的Java标准扩展。本文将介绍如何在Java中使用JavaMail API发送电子邮件。

Step 1:导入JavaMail API

在使用JavaMail API发送电子邮件前,我们需要先导入JavaMail API。可以在https://java.net/projects/javamail/pages/Home下载JavaMail的最新版本。

具体步骤如下:

  1. 下载JavaMail
  2. 将下载的JavaMail解压到本地(比如解压到D:\lib下)
  3. 将JavaMail的jar包(比如mail.jar和activation.jar)添加到Java项目的classpath中
Step 2:编写Java发送电子邮件的程序

我们可以使用以下代码来发送电子邮件:

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

public class EmailSender {

    public static void main(String[] args) {

        String to = "recipient@example.com";
        String subject = "Test Email";
        String body = "This is a test email from Java.";

        sendEmail(to, subject, body);

        System.out.println("Email sent successfully.");
    }

    public static void sendEmail(String to, String subject, String body) {

        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");

        String username = "your-email@example.com";
        String password = "your-email-password";

        Session session = Session.getInstance(props, new javax.mail.Authenticator() {
            protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
                return new javax.mail.PasswordAuthentication(username, password);
            }
        });

        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(username));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
            message.setSubject(subject);
            message.setText(body);

            Transport.send(message);

        } catch (AddressException e) {
            throw new RuntimeException(e);
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}

请注意,这个程序需要做一些修改,以便适用于您特定的情况。您需要更改以下值:

  • to:电子邮件接收者的地址
  • subject:电子邮件的主题
  • body:电子邮件的正文
  • mail.smtp.host:SMTP服务器的主机名
  • mail.smtp.port:SMTP服务器的端口号
  • username:用于身份验证的电子邮件地址
  • password:用于身份验证的电子邮件地址的密码
Step 3:运行程序

现在,您可以在终端中执行此程序,并检查您的电子邮件是否已成功发送。

总结

JavaMail API是一个用于发送和接收邮件的Java标准扩展,这使得在Java中发送电子邮件变得非常容易。本文介绍了如何在Java中使用JavaMail API发送电子邮件,并提供了一个可以用作参考的示例程序。