javax.mail发送邮件[入门+应用]

1. javax.mail

1.1. 简介

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。 JavaMail是可选包。

1.2. 相关协议

  1. SMTP(递送邮件机制)

    简单邮件传输协议

    SMTP服务器将邮件转发到接收者的SMTP服务器,直至最后被接收者通过POP或者IMAP协议获取。

  2. POP(获取邮件机制)

    邮局协议

  3. IMAP(多目录共享)

    接收信息的高级协议

    接收新信息,将这些信息递送给用户,维护每个用户的多个目录。

  4. MIME

    邮件扩展内容格式:信息格式、附件格式等等

  5. NNTP

    第三方新闻组协议

1.3. 所需要的包

  • mail.jar

    下载地址

    将下载的包添加到项目即可。

1.4. 核心类

javamail.jar文件的一些核心类:Session、Message、Address、Authenticator、Transport、Store、Folder

  • Session(邮件会话类)

    进行收、发邮件的工作都是基于这个会话的。

    Session利用java.util.Properties对象 进行邮件服务器、用户名、密码等信息的配置。

    Properties props = new Properties();
    Session session = Session.getDefaultInstance(props, null);
    

    或者

    Properties props = new Properties();
    Session session = Session.getInstance(props, null);
    

    从上面的两个例子中不难发现,第二个参数都是null,这是因为在上面的例子中并没有使用到邮件授权(Authenticator)

  • Message

    该类是对邮件的抽象。

    可以设置邮件的相关内容

    使用javax.mail.internet.MimeMessage这个子类,该类是使用MIME类型、MIME信息头的邮箱信息。

    信息头只能使用US-ASCII字符

    Message message = new MimeMessage(session);
    message.setContent(“Hello”, “text/plain”);//非文本信息内容

    message.setSubject(“First”);//纯文本信息内容

    message.setText(“Hello”);//设置邮件内容
    message.setSentDate(Date);//设置邮件发送日期

  • Address

    建立了Session和Message对象后,使用邮件地址Address抽象类。该类是对邮件地址的抽象。

    使用javax.mail.internet.InternetAddress这个子类。通过传入邮件地址的字符串, 便可实例一个邮件地址对象。

    Address address = new InternetAddress("123456@qq.com"); //邮件地址
    Address address = new InternetAddress("123456@qq.com", "Hao"); //带名字的邮件地址
    message.setFrom(address);//设置发信人
    message.setReplyTo(address);//同上
    message.addFrom(Address[] address);//添加多个发信人
    message.addRecipient(type, address)//设置收信人
    // type的类型有很多
    // Message.Recip
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值