Javaweb 之邮件发送

本贴最后更新于 1243 天前,其中的信息可能已经渤澥桑田

邮件发送

一、邮件服务器与传输协议

  • 要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。
  • SMTP 服务器地址:一般是 smtp.xxx.com,比如 163 邮箱是 smtp.163.com,qq 邮箱是 smtp.qq.com。
  • SMTP 协议
    通常把处理用户 smtp 请求(邮件发送请求)的服务器称之为 SMTP 服务器(邮件发送服务器)。
  • POP3 协议
    通常把处理用户 pop3 请求(邮件接收请求)的服务器称之为 POP3 服务器(邮件接收服务器)。

二、Java 发送邮件

  1. 需要使用的 jar 包
  • mail.jar
  • activation.jar
  1. 代码实现
public class SendEmail {
    public static void main(String[] args) throws Exception {
        Properties prop = new Properties();
        prop.setProperty("mail.host","smtp.qq.com"); // 设置qq邮件服务器
        prop.setProperty("mail.transport.protocol","smtp"); // 邮件发送协议
        prop.setProperty("mail.smtp.auth","true"); // 需要验证用户名密码

        //  设置SSL加密  qq邮箱固定的
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        prop.put("mail.smtp.ssl.enable","true");
        prop.put("mail.smtp.ssl.socketFactory",sf);

        // 使用javamail发送邮箱的五个步骤
        // 1. 创建定义整个应用程序所需要的环境信息的Session对象
        Session session = Session.getDefaultInstance(prop, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 发件人邮箱用户名,授权码
                return new PasswordAuthentication("1289066006@qq.com","ltsoimozvswdbadf");

            }
        });
           // 开启session的debug模式
        session.setDebug(true);
        // 2. 通过Session得到transport对象
        Transport ts = session.getTransport();
        // 3. 使用邮箱的用户名和授权码连上服务器
        ts.connect("smtp.qq.com", "1289066006@qq.com", "ltsoimozvswdbadf");
        // 4. 创建邮件
        MimeMessage message = new MimeMessage(session);  //创建邮件对象
        message.setFrom(new InternetAddress("1289066006@qq.com"));   // 指定邮件的发件人
        message.setRecipient(Message.RecipientType.TO, new InternetAddress("1289066006@qq.com"));  // 指定收件人
        message.setSubject("简单邮件");  // 设置邮件的标题
        message.setContent("你好啊!","text/html;charset=UTF-8");
        // 5. 发送邮件
        ts.sendMessage(message,message.getAllRecipients());
        ts.close();

    }
}
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 589 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...