Java mail 发送邮件的具体实例


以下是一个使用Java Mail API发送电子邮件的简洁示例。请注意,为了运行此代码,您需要在项目中包含JavaMail API的依赖项。


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 SendEmailExample {

    public static void main(String[] args) {

        // 发件人电子邮箱
        final String from = "your-email@example.com";
        // 发件人邮箱密码(如果是Gmail,可能需要生成应用专用密码)
        final String password = "your-password";

        // 指定发送邮件的主机为 smtp.example.com
        String host = "smtp.example.com";

        // 获取系统属性
        Properties properties = System.getProperties();

        // 设置邮件服务器
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", "587"); // Gmail使用465或587端口
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true"); // 启用TLS

        // 获取默认session对象
        Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(from, password);
            }
        });

        try {
            // 创建默认的 MimeMessage 对象
            MimeMessage message = new MimeMessage(session);

            // Set From: header field
            message.setFrom(new InternetAddress(from));

            // Set To: header field
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("recipient-email@example.com"));

            // Set Subject: header field
            message.setSubject("This is the Subject Line!");

            // 现在设置实际消息
            message.setText("This is actual message");

            // 发送消息
            Transport.send(message);
            System.out.println("Sent message successfully....");
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

**注意**:

- 请将`your-email@example.com`、`your-password`和`recipient-email@example.com`替换为您自己的电子邮件地址、密码和收件人地址。

- 如果您的邮件服务器不是Gmail,请相应地更改`host`和端口号。

- 对于Gmail,如果您在尝试发送邮件时遇到登录问题,请确保您已经启用了“允许不够安全的应用”的访问权限(尽管不推荐这样做,因为它降低了安全性),或者更推荐使用应用专用密码。

- 确保您的Java项目已经包含了JavaMail API的依赖项。如果您使用的是Maven或Gradle,可以在项目的构建文件中添加相应的依赖。