Spring mvc之 发邮件(qq.163...)

1、 邮件开发涉及到的一些基本概念

1.一、邮件服务器和电子邮箱

  要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如如今Internet不少提供邮件服务的厂商:sina、sohu、16三、qq等等他们都有本身的邮件服务器。java

  这些邮件服务器相似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。spring

  电子邮箱(E-Mail地址)的得到须要在邮件服务器上进行申请,确切地说,电子邮箱其实就是用户在邮件服务器上申请的一个帐户,用户在邮件服务器上申请了一个账号后,邮件服务器就会为这个帐号分配必定的空间,用户从而可使用这个账号以及空间发送电子邮件和保存别人发送过来的电子邮件。服务器

1.二、邮件传输协议

1.2.一、SMTP协议

  (官方解释)SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,经过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 
  SMTP 认证,简单地说就是要求必须在提供了帐户名和密码以后才能够登陆 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 
  增长 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。app

  用户链接上邮件服务器以后,要想给它发送一封电子邮件,须要遵循必定的通信规则,SMTP协议就是用来定义这种通信规则的。所以,咱们一般也把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。jsp

1.2.二、POP3协议

  (官方解释) POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将我的计算机链接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3容许用户从服务器上把邮件存储到本地主机(即本身的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。spa

  一样,用户若想从邮件服务器管理的电子邮箱当中接收一封电子邮件话,它连上邮件服务器后,也要遵循必定的通信格式,POP3协议就是用来定义这种通信格式的。所以,咱们一般也把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。debug

 

 

2、开启协议

  根据上面的知识点,咱们要发送邮件,首先得设置而且开启SMTP/POP3协议,下面分别以163邮箱 和 qq邮箱 为例 ,其实都是大同小异:code

 163邮箱:orm

  首先进入163邮箱首页,选择--设置xml

  

  选择---开启 ---- 获取验证码 ---输入验证码

  

点击 --- 肯定 ,勾选协议开启

  

 qq邮箱 

  先进入设置-》账户页面找到入口,按照如下流程操做。
  (1)点击“开启”

  (2)验证密保  

  (3)获取受权码

   记住这16位的受权码

 以上就是163邮箱 和 qq 邮箱 协议开启 的步骤。不一样点是:163 受权码是本身设置 ,qq 是服务端 指定受权码 。

3、使用Smtp协议发送邮件

  以qq邮箱为例 ,首先加入jar 包:

  

"org.springframework:spring-context-support:$springVersion",
"javax.mail:mail:1.4.7"

  在spring.xml 中配置:

//加载mail 资源信息
    <context:property-placeholder location="classpath:mail.properties"/>

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${qq_host}"/>    //这是smtp 服务器地址 stmp.qq.com
        <property name="username" value="${qq_username}"/>  //邮箱帐号 2054***@qq.com
        <property name="password" value="${qq_password}" />  //受权码16位  pckazfsugnqtedib
        <property name="javaMailProperties">
            <props>
                <prop key="mail.transport.protocol">smtp</prop>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.debug">true</prop>
            </props>
        </property>
    </bean>
而后,在service 中写入方法
@Service
public class UserService {

    @Resource
    private MailSender mailSender ;

    public void setMailSender(){
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setFrom("2054631701@qq.com");
        mailMessage.setTo("1484024976@qq.com"); 
        mailMessage.setSubject("好莱坞会员");
        mailMessage.setText("你好1484024976用户,在腾讯11周年庆中幸运成为腾讯白金会员");

        mailSender.send(mailMessage);
    }

}

在 Controller中调用 此方法:

@Resource
    private UserService userService;

@RequestMapping("/send")
    public String sendMial(){
        userService.setMailSender();
        return "success";
    }

在jsp 页面中请求Controller:

<form action="/send" method="get">
    <input type="submit" value="Send" />
  </form>

 

以上就OK了。谢谢你们的关注,续更。。。。

相关文章
相关标签/搜索