java网上商城开发之邮件发送功能(全)

最近在学习网上商城时,接触到了一个邮件发送的功能。之前一直在使用邮箱进行发送邮件,但是其中的具体如何运转的却不知道是怎么回事。那么邮件发送究竟是怎么一回事呢?

邮件发送过程:

过程描述:首先是发送人将邮件通过客户端软件发送到特定的服务器上,然后通过电子邮件简单传输协议(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这几个重要的类。

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • Java HtmlEmail 邮件发送的简单实现代码

    Java 项目中常常回遇到发送邮件 Java 发送邮件有几种,今天先给大家介绍用 HtmlEmail 来发送邮件,我这里是用 Maven 来搭建的 HtmlEmail 可以抄带HTML 首先 需要导入jar 包 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.4</versio

  • java邮件发送简单实现代码

    本文实例为大家分享了java邮件发送的具体代码,供大家参考,具体内容如下 我用的是maven项目,前台页码不多说,自己传邮箱地址进来就行. 只需要一个类实现,直接复制就可以 package com.mail; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import

  • java邮件发送的实现

    邮件是在日常生活中,这篇文章主要介绍了java实现基于SMTP发送邮件的方法,实例分析了java基于SMTP服务发送邮件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下. 1.写一个 MailSendProper 类封装需要的属性 import java.util.Properties; public class MailSendProper { private String Host ; //发送邮件服务器的ip private String Port ; //发送邮件服务器的端口号 p

  • 基于JavaMail的Java实现简单邮件发送功能

    电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本文将简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件. 1. 电子邮件协议 电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP.其中邮件的创建和发送只需要用到 SMTP协议,所以本文也只会涉及到SMTP协议.SMTP 是

  • 利用Java的Struts框架实现电子邮件发送功能

    本章将教你如何使用Struts2 的应用程序发送电子邮件.对于此练习中,需要下载并安装将mail.jar 从 JavaMail API1.4.4,并将 mail.jar文件放置在WEB-INFlib文件夹,然后继续遵循的标准步骤创建动作,视图和配置文件. 创建动作: 下一步是创建一个Action方法,发送电子邮件.让我们创建一个新类称为 Emailer.java 以下内容. package com.yiibai.struts2; import java.util.Properties; impo

  • Java实现带附件的邮件发送功能

    本文实例为大家分享了Java实现邮件发送功能的具体代码,供大家参考,具体内容如下 1.需要导入mail.jar.activation.jar这两个邮件发送的jar包,可在网上搜索并下载 2.需要设置相关邮箱服务器,我用的是QQ邮箱,操作如下所示:开启相关服务,并生产授权码(这个代码中会用到). 代码如下所示: package com.ecg.controller; import java.io.UnsupportedEncodingException; import java.security.

  • Java实现简单邮件发送

    JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件.这一机制被广泛的用在注册激活和垃圾邮件的发送等方面. Java邮件发送的大致过程是这样的: 1.构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法.此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利. 2.构建一个proper

  • 基于JavaMail的Java实现复杂邮件发送功能

    上一篇文章 基于 JavaMail 的 Java 邮件发送:简单邮件发送 讲解了邮件的基本协议,JavaMail组件,创建并发送一封简单邮件的详细步骤.本文将介绍如何创建并发送一封包含图片和附件的复杂邮件. 一封复杂的邮件内容可以看做是由很多节点(或者可以说是"片段"/"部分"/"零件")组成,文本.图片.附件等都可以看成是邮件内容中的一个节点.这些节点之间又可以相互关联组合成一个节点.最终组合成一个大节点就是邮件的正文内容. 完整代码演示: p

  • JavaWeb实现邮件发送接收功能实例解析

    一.邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu.163等等他们都有自己的邮件服务器. 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中. 电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请,确切地说,电子邮箱其实就是用户在邮件服务器上申请的一个账户,用户在邮件服务器上申请了一个

  • Java实现邮件发送遇到的问题

    发送邮件的代码是我从以前的一个应用上直接拷贝过来的.以前使用的腾讯的邮件服务,程序执行起来没有任何问题.后来修改为微软office365邮件服务后,却遇到了两个问题. 问题一,tls加密设置 异常信息如下: 复制代码 代码如下: Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send anonym

随机推荐