当前位置: 首页 > article >正文

# Java 发送电子邮件示例

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,
忍不住分享一下给大家。点击跳转到网站

学习总结

1、掌握 JAVA入门到进阶知识(持续写作中……
2、学会Oracle数据库入门到入土用法(创作中……
3、手把手教你开发炫酷的vbs脚本制作(完善中……
4、牛逼哄哄的 IDEA编程利器技巧(编写中……
5、面经吐血整理的 面试技巧(更新中……

在这里插入图片描述

下面是一个使用JavaMail API发送简单电子邮件的示例。为了运行这个代码,你需要在项目中添加JavaMail库,并确保你有访问SMTP服务器的权限。

依赖

首先,确保你已经导入了JavaMail库。如果你使用的是Maven项目,可以在pom.xml中添加以下依赖:

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

示例代码

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

public class SendEmail {

    // 方法:发送邮件
    public static void send(String from, String password, String to, String subject, String body) {
        // SMTP服务器的主机名和端口(这里以Gmail为例)
        String host = "smtp.gmail.com";
        int port = 587;

        // 设置系统属性
        Properties properties = System.getProperties();
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", port);
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");

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

        try {
            // 创建MIME邮件对象
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject(subject);
            message.setText(body);

            // 发送消息
            Transport.send(message);
            System.out.println("邮件发送成功");
        } catch (MessagingException mex) {
            mex.printStackTrace();
            System.out.println("发送失败: " + mex.getMessage());
        }
    }

    // 主方法
    public static void main(String[] args) {
        // 邮件发送者的邮箱地址和密码
        String from = "your-email@gmail.com";
        String password = "your-password";

        // 收件人的邮箱地址
        String to = "recipient-email@example.com";

        // 邮件主题和内容
        String subject = "测试邮件";
        String body = "这是通过JavaMail API发送的一封测试邮件。";

        // 调用send方法发送邮件
        send(from, password, to, subject, body);
    }
}

注意事项

  • 安全性:在实际应用中,不要直接在代码中硬编码邮箱密码。考虑使用环境变量或安全的配置管理工具。
  • SSL/TLS:根据你的SMTP服务器设置,可能需要启用SSL或TLS加密通信。
  • 认证:某些邮箱服务提供商(如Gmail)可能要求你启用“不太安全的应用”的访问权限,或者使用应用专用密码。
  • 错误处理:上面的代码包含了基本的异常处理,但在生产环境中你应该实现更健壮的错误处理逻辑。

请根据自己的需求调整代码,并确保遵守邮箱服务提供商的使用条款和隐私政策。


请注意,上述代码中的`your-email@gmail.com`、`your-password`、`recipient-email@example.com`等信息应替换为实际的值。此外,由于安全原因,建议不要在代码中直接存储明文密码,而是使用更安全的方法来管理凭证。

# <font color=#56aaa>往期文章</font>
[&emsp;第一章:日常_JAVA_面试题集(含答案)](https://wenfeng.blog.csdn.net/article/details/109253627)
[&emsp;第二章:日常_JAVA_面试题集(含答案)](https://wenfeng.blog.csdn.net/article/details/108773049)
&emsp;[平安壹钱包JAVA面试官:请你说一下Mybatis的实现原理](https://blog.csdn.net/Feng_wwf/article/details/117460385)
&emsp;[Java必备面试-热点-热门问题精华核心总结-推荐](https://blog.csdn.net/Feng_wwf/article/details/116524563)
[&emsp;往期文章大全……](https://blog.csdn.net/Feng_wwf)
![在这里插入图片描述](https://img-blog.csdnimg.cn/b2246eb64888442e94b341f853ee4daf.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Zlbmdfd3dm,size_16,color_FFFFFF,t_70)

**<font color=#c7a>一键三连 ~一键三连~ 一键三连~</font>**
# [更多内容,点这里❤](https://wenfeng.blog.csdn.net/)

http://www.kler.cn/a/471565.html

相关文章:

  • 【人工智能计算机视觉】——深入详解人工智能计算机视觉之图像处理之基础图像处理技术
  • 基于RedHat9部署WordPress+WooCommerce架设购物网站
  • 免费一键图片转3D模型,AI建模,一键把图片转三维模型,二维图片转3维模型,AI建模
  • JVM vs JDK vs JRE
  • 【51单片机】02LED流水灯实验
  • 路由组件与一般组件的区别
  • 『SQLite』常见函数的使用
  • `http_port_t
  • 『SQLite』常见日期时间函数的使用
  • java项目之旅游网站的设计与实现(源码+文档)
  • 网络分析与监控:阿里云拨测方案解密
  • ETCD渗透利用指南
  • 【Python】Flask报错:TimeoutError: QueuePool limit of size 10...以及日常bug处理
  • PyCharm简单调试
  • 【计算机组成原理课程设计】:实验0 ROM仿真、实验1 验证74L181运算和逻辑功能、实验2 运算器 2、实验 3 跑马灯、实验4 模拟微程序实现指令
  • swagger导出json
  • rabbitmq——岁月云实战笔记
  • C# async和await
  • Dexcap复现代码数据预处理全流程(四)——demo_clipping_3d.py
  • 东土科技参股广汽集团飞行汽车初创公司,为低空经济构建新型产业生态
  • 面向对象的思维hong
  • Ubuntu22.04 离线安装:gcc、make、dkms、build-essential
  • 模式识别-Ch3-贝叶斯估计
  • QT给端口扫描工程增加线程2
  • 【JavaWeb】2. 通用基础代码
  • ubuntu为Docker配置代理