发送邮件

来源:互联网 发布:华三交换机开启端口 编辑:程序博客网 时间:2024/05/19 07:09

1.邮件发送API的体系结构

java.mail.Transport  用于执行邮件发送任务,它的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Messag对象中封装的邮件数据发送到指定的SMTP服务器。


1) 从Session对象中获得实现了某种邮件发送协议的Transport对象

2) 使用Session对象创建Message对象,并调用Message对象的方法封装邮件数据

3) 连接指定的SMTP服务器,调用Transport对象中的邮件发送方法发送Message对象中封装的邮件数据


javax.mail.Session 

用于定义整个JavaMail应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。

Session对象根据这些信息构建用于邮件发送的Transport和Store对象,以及为客户端创建Message对象时提供信息支持


javax.mail.Transport 

继承了javax.mail.Service类,它用于连接SMTP服务器,并把包含在Message对象中的邮件数据发送到SMTP服务器。


Authenticator

代表了一个可以对外提供用户认证信息的对象,它提供的用户认证信息封装在一个PasswordAuthentication类型的对象中


为邮件发送程序配置代理


用户使用代理服务器上网的好处:
1)提高访问速度
2)代理服务器可以起到防火墙的作用
3)通过代理服务器访问一些不能直接访问的网站

4)具有一定的隐身效果


SMTP服务器功能的邮件发送程序

是指邮件发送程序本身就像一台SMTP服务器那样直接对外发送邮件,不需要依赖其他SMTP服务器对外发送程序


具有SMTP服务器功能的邮件发送程序与客户端邮件发送程序的最大区别:

要通过程序来自动获得收件人地址所在域的SMTP服务器和不用向其连接的SMTP服务器提交用户认证信息。


要在程序中获得收件人地址所在域的SMTP服务器,就需要程序代码去查询DNS服务器并获得收件人地址所在域的MX记录。

Sun公司开发了一个用户查询DNS信息的JDNI服务程序,我们只要通过使用JNDI API 调用这个用于DNS查询的JNDI服务程序,就可以获得某个域中的所有DNS信息。


JNDI java naming and directory interface(Java命令和目录接口)

它是为JAVA应用程序提供命名和目录访问服务的API(application programing interface 应用程序编程接口)
JNDI中的命令(Naming),就是将java对象以某个名称的形式绑定(binding)到一个容器环境中(context)中,以后调用容器环境(context)的查找(lookup)方法又可以查找出某个名称所绑定的Java对象。例如,tomcat服务器在启动时可以创建一个连接到某种数据库系统的数据源对象(DataSource),并将该数据源对象(DataSource)绑定到JNDI环境中,以后再这个tomcat服务器中运行的servlet和jsp程序就可以从JNDI环境中查询出这个数据源对象(DataSource)进行使用,而不用关心数据源对象(DataSource)是如何创建出来的,这种方式极大地增强了系统的可维护性。

容器环境(context)本身也是一个Java对象,它可以通过一个名称绑定到另一个容器环境(context)中,这就形成了一种父子级联关系,

0 0
原创粉丝点击