邮件是如何发送的
你知道在计算机世界里面是如何发送邮件的吗?
google邮件服务器,是由很多台机器组成的集群,里面存放的是所有用户的邮件内容。如果你申请了google邮箱的帐号,那么在这个分布式存储系统中就会分一块空间给你使用(例如10G,是动态分配的)。
用户代理就是一个客户端,例如Foxmail,OutLook等,客户端会连接到服务端,从服务端读取邮件内容到客户端,供用户查看;或者客户端写邮件内容,上传到服务端,最终的发信都是由服务端发出去的,发送到收件人的邮箱服务器上。
SMTP传输协议:建立在TCP协议上,邮件服务器之间的通信、用户代理发送邮件到服务器都是使用的SMTP协议,但是用户代理从邮件服务器读取邮件内容使用的是POP3协议。
![](https://images2017.cnblogs.com/blog/1102349/201708/1102349-20170804110957178-613015070.png)
那么如何在应用程序中发送邮件呢?其实只需要将应用程序当成用户代理(客户端),让它连接到google邮件服务器上(smtp.gmail.com),就可以给其他用户发邮件了。当然java也可以使用第三方jar包(mail.jar 和 activation.jar),将localhost作为邮件服务器,直接发送邮件。