最近在学习网上商城时,接触到了一个邮件发送的功能。之前一直在使用邮箱进行发送邮件,但是其中的具体如何运转的却不知道是怎么回事。那么邮件发送究竟是怎么一回事呢?
邮件发送过程:
过程描述:首先是发送人将邮件通过客户端软件发送到特定的服务器上,然后通过电子邮件简单传输协议(SMTP)来进行传输,收件人通过POP3协议将邮件从服务器上接受回来。这样就实现了邮件之间的相互传送。
实现过程:
在有网络的情况下,我们可以直接使用搜狐、网易等邮箱进行发送。那么如何在没有网络的情况下,实现内部之间的发送呢?
首先需要安装配置一个服务器,视频中使用的是易邮邮件服务器,该软件的安装比较简单,安装成功之后会有一个失败提示,如下:
该问题没有影响(暂时还没有遇到什么问题)我们的功能,可以忽略。安装完成之后需要对其进行一些配置。先进行服务器设置,打开工具——>服务器设置:设置自己服务器地址的域名(类似于我们使用的网易邮箱的域名@后的163.com)
然后添加新账号:设置名称和密码
添加之后的效果如下:
服务器配置完成之后,进行客户端的安装与配置,因为本机已经安装了foxmail的最新版本,为了不造成混乱,所以用foxmail6.5进行设置,其中安装过程不再叙述。
首先要新添加用户账户(如果在安装过程中已经设置了测试的用户就不用再添加),填入测试的账户,如下:
点击下一步,设置服务类型和服务器,这里需要注意服务器的配置,由于自己是在本地进行邮件传送,所以发、送邮件服务器都设置为本地:localhost。
设置好之后,下一步,进行测试:
成功之后即可关闭配置,此时配置基本上就完成了
在此次配置过程中需要注意:
1、配置服务器的域名,并且添加一些账户
2、配置客户端时,注意接收服务器地址的设置、服务器类型等问题。
至此,我们发送邮件所需要的环境已经配置完成,具体的代码实现过程,将在下篇进行详细介绍。通过这次的学习,了解了邮件服务的基本原理,知道了我们平常发送邮件的过程。同时,也让自己对一些服务器设置、域名及类型有了新的认识,之前也曾遇到过foxmail无法工作的问题,现在基本上知道其问题处在何处了。知识,总是在不断的实践中获得的,而且是需要不断的反复学习和锻炼。
以上基本上将发送的原理说了一下,以及如何进行配置邮件服务。下面主要说一下发送邮件的一些具体的实现过程。
代码实现发送过程主要分为三个步骤:
第一步是获得连接,通过java中的Properties类来进行读取配置文件,调用基类的一些方法进行基础的设置以及连接设置。
// 1、获得连接 Properties props=new Properties();//Properties是java中的一个重要的类,主要用于读取java的配置文件 //设置连接的服务器 props.setProperty("mail.host", "localhost");//调用Hashtable的方法put,通过调用基类的put方法来设置键值对 Session session=Session.getInstance(props, new Authenticator(){ @Override protected PasswordAuthentication getPasswordAuthentication() { // TODO Auto-generated method stub //设置自己的服务邮件地址和密码 return new PasswordAuthentication("service@pengbo.com","1"); } });
第二步是进行创建邮件对象,主要是通过Message这个载体进行封装信息,Message是一个抽象类,已知的实现类有MimeMessage。
// 2、创建邮件对象 Message message=new MimeMessage(session); // 设置发送人 try { //设置服务端 message.setFrom(new InternetAddress("service@pengbo.com")); // 设置收件人 message.addRecipient(RecipientType.TO, new InternetAddress(to)); // 设置标题 message.setSubject("购物激活邮件"); // 设置邮件正文 message.setContent("<h1>购物激活邮件,点下面链接完成激活操作!</h1><h3><a href='http://192.168.21.84:8080/shop/user_active.action?code="+code+" '>http://192.168.21.84:8080/shop/user_active.action?code="+code+"</a></h3>", "text/html;charset=UTF-8");
第三步是发送邮件
// 3、发送邮件 Transport.send(message); 这样发送邮件的主要流程就实现了,然后在此类中定义主方法: public static void main(String[] args){ //要发送的对象及验证码 sendMail("a@pengbo.com","11111111"); } 在Service层进行调用邮件发送的方法即可: // 发送激活邮件 MailUitls.sendMail(user.getEmail(), code);
具体的知识积累:
1、Properties 主要获取配置文件信息,主要的方法有getProperty ( String key)、load ( InputStream inStream)、setProperty ( String key, String value)、store ( OutputStream out, String comments)、clear ()
2、Session 是一对配置信息的集合,主要作用是接收各种配置属性信息,初始化JavaMail环境
3、Message 是一个抽象类,它实现接口Part,并定义了一些属性
4、transport是指传输邮件,与之对应的是store存储功能。
功能虽然实现了,但是其中用到的一些类还需要进行深入的学习和研究。就目前而言,仅仅有了一个入门,知道了在JavaMail中,有Properties、Session、Message这几个重要的类。
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文向大家介绍java实现发送邮件功能,包括了java实现发送邮件功能的使用技巧和注意事项,需要的朋友参考一下 前言 前段时间做一个紧急的功能,其中有部分需求是需要发邮件通知;通过查阅以及实验,很快的写了个发送邮件的功能;现在整理一下记录下来。 发送邮件 一、在pom中引入相关依赖 二、发送邮件的工具类 三、遇到的坑 在本地测试没有问题;我们的测试服务在阿里云上,阿里云对发送的时候是失败;追踪日志
本文向大家介绍phpmailer发送邮件功能,包括了phpmailer发送邮件功能的使用技巧和注意事项,需要的朋友参考一下 PHP内置的mail函数使用起来不够方便,另外受其他语言的影响,博主更偏好面向对象的包管理模式,因此phpmailer成为了我用PHP发送邮件的首选,这里分享给大家。 库导入 这里使用composer进行包管理,以下是json文件: 使用样例 测试结果 博主使用163作为发送
简介 Laravel 基于 SwiftMailer 函数库提供了一套干净、简洁的邮件 API ,Laravel 为 SMTP 、Mailgun 、SparkPost 、 Amazon SES 、 PHP 的 mail 函数及 sendmail 提供驱动,让你可以快速从本地或云端服务自由地发送邮件。 驱动前提 基于 API 的驱动,例如 Mailgun 和 SparkPost 通常比 SMTP 服务
本文向大家介绍python实现邮件发送功能,包括了python实现邮件发送功能的使用技巧和注意事项,需要的朋友参考一下 什么是POP3、SMTP和MAP? POP3是Post Office Protocol 3的简称,即邮局协议的第三个版本,他是规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的协议。它是因特网电子邮件的第一个离线协议的标准。POP3允许用户从服务器上把邮件存储
本文向大家介绍JavaWeb实现邮件发送功能,包括了JavaWeb实现邮件发送功能的使用技巧和注意事项,需要的朋友参考一下 基于JavaWeb的邮件发送功能(多附件),供大家参考,具体内容如下 本次学习主要目的是为了测试由QQ邮箱发送到任意一个有效邮箱的功能实现,附带多个附件。学习者可以借鉴其他邮箱的格式,梳理一下要写的内容。项目把文件内容放到了MimeMessage 邮件对象里,其中包含了如发件
本文向大家介绍Spring实现邮件发送功能,包括了Spring实现邮件发送功能的使用技巧和注意事项,需要的朋友参考一下 前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender,关于邮件服务器的设置就不在这里说了,直接去QQ邮箱设置下就好,下面看下主要的步骤: 步骤一、添加发送邮件相关Maven依赖 步骤二、