跟阿根一起学Java Web开发四:邮件发送与短信发送的实现

邮件发送与短信发送常见于用户注册认证以及系统消息提示功能模块,但实现代码过于繁琐;使用JSPGen后,深感其对邮件发送、短信发送的封装让复杂活变得简单很多。

在短信发送模块中:支持两种方式,分别为第三方发送、本地平台发送,这里我们主要演示第三方发送方式的配置情况及实现方式(采用本地平台发送时无需进行配置,根据短信发送接口文件重写对应实现类即可)。

一、基础配置

jspgen-config.xml
在框架基础配置文件中,找到mail节点及sms节点,按如下配置:

    <!-- 邮件服务 -->
    <mail status="true">
       <smtp>
           <!-- 发送类型(SMTP MX) -->
           <type>SMTP</type>
           <server>smtp.163.com</server>
           <port>25</port>
           <email>jspgen@163.com</email>
           <name>JSPGen官网</name>
           <username>jspgen</username>
           <password>jspgen</password>
           <!-- 内容格式(text html url) -->
           <format>html</format>
           <!-- 内容签名 -->
           <sign>JSPGen-让Java(Web)软件开发变得更敏捷! www.JSPGen.com</sign>
       </smtp>
    </mail>

    <!-- 短信服务(http) -->
    <sms status="true">
       <!-- 提交地址及方式(GET POST) -->
       <url>发送地址</url>
       <method>GET</method>
       <charset>UTF-8</charset>
       <username>
           <key>name</key>
           <value>jspgen</value>
       </username>
       <password>
           <key>password</key>
           <value>jspgen</value>
       </password>
       <!-- 是否支持批量发送 -->
       <mobile batch="false">
           <key>mobile</key>
           <gap>;</gap>
       </mobile>
       <content>
           <key>msg</key>
       </content>
       <time>
           <key>dtime</key>
           <!-- 时间格式,为空则为Long型时间戳 -->
           <format>yyyy-MM-dd HH:mm:ss</format>
       </time>
       <!-- 返回数据 -->
       <return>
           <!-- 返回格式(text xml json) -->
           <format>text</format>
           <!-- 返回关键字,格式为xml/json时有用 -->
           <key>status</key>
           <!-- 返回成功标识 -->
           <value>0</value>
       </return>
       <!-- 内容签名 -->
       <sign>【JSPGen】</sign>
    </sms>

 

二、代码实现

1、SendAction.java

package demo.action;
import grapes.Dates;
import grapes.Files;
import grapes.Grapes;
import grapes.tools.Browser;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jspgen.action.Action;

/**
 * Action类:邮件发送与短信发送
 * 
 * @author JSPGen
 * @copyright (c) JSPGen.com
 * @created 2013年03月
 * @email jspgen@163.com
 * @address www.jspgen.com
 */
public class SendAction extends Action {
       /**
        * 默认方法
        */
       @Override
       public String execute() {
              return "mail";
       }

       /**
        * 发送邮件提交
        */
       public String mail () {
              boolean isflag = false;
              Long time = Dates.getTimeMillis();
              String to = getParameter("to"); // 接收表单值(表单名称:to)
              isflag = sendMail(to, getParameter("subject"), getParameter("content"), time); // 发送中
              if(!isflag){
                     addActionError("发送失败!");
                     return ERROR;
              }
              addActionMessage("发送成功!");
              return SUCCESS;
       }

       /**
        * 发送短信提交
        */
       public String sms() {
              boolean isflag = false;
              Long time = Dates.getTimeMillis();
              String to = getParameter("to"); // 接收表单值(表单名称:to)
              isflag = sendSMS (to, getParameter("content"), time); // 发送中
              if(!isflag){
                     addActionError("发送失败!");
                     return ERROR;
              }
              addActionMessage("发送成功!");
              return SUCCESS;
       }
}

 

2、mail.html 入口页面模板

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>邮件</title>
</head>
<body>
<h2>邮件发送</h2>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
  <form action="send!mail.gen" method="post" name="form" id="form">
    <tr>
      <td width="135" height="35" align="right" bgcolor="#FFFFFF">收件地址:</td>
      <td width="362" bgcolor="#FFFFFF"><input type="text" name="to" /></td>
    </tr>
    <tr>
      <td width="135" height="35" align="right" bgcolor="#FFFFFF">信件主题:</td>
      <td width="362" bgcolor="#FFFFFF"><input type="text" name="subject" /></td>
    </tr>
    <tr>
      <td width="135" height="93" align="right" valign="middle" bgcolor="#FFFFFF">信件内容:</td>
      <td width="362" valign="middle" bgcolor="#FFFFFF"><textarea name="content" cols="50" rows="5"></textarea></td>
    </tr>
    <tr>
      <td height="50" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF">
        <input name="redirectUrl" type="hidden" id="redirectUrl" value="send.gen" />
        <input type="submit" name="button" id="button" value="发送" />
                      
        <input type="reset" name="button2" id="button2" value="重置" /></td>
    </tr>
  </form>
</table>
<h2>短信发送</h2>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
  <form action="send!sms.gen" method="post" name="form2" id="form2">
    <tr>
      <td width="135" height="35" align="right" bgcolor="#FFFFFF">手机号码:</td>
      <td width="362" bgcolor="#FFFFFF"><input name="to" type="text" id="to" /></td>
    </tr>
    <tr>
      <td width="135" height="93" align="right" valign="middle" bgcolor="#FFFFFF">短信内容:</td>
      <td width="362" valign="middle" bgcolor="#FFFFFF"><textarea name="content" cols="50" rows="5" id="content"></textarea></td>
    </tr>
    <tr>
      <td height="50" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF"><input name="redirectUrl" type="hidden" id="redirectUrl" value="send.gen" />
        <input type="submit" name="button3" id="button3" value="发送" />
                      
        <input type="reset" name="button3" id="button4" value="重置" /></td>
    </tr>
  </form>
</table>
</body>
</html>

 

三、测试

浏览器中直接输入:http://localhost:8080/jspgensdf/send.gen

 

注意:163刚注册的账号无法发送,好像需要过两个月后才可以使用,可以自行搭建一个邮件服务环境,进行测试。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值