velocity +mybatis+ springMvc构建邮件服务器知识总结

时间:2022-09-09 09:40:25

1.在controller中传值到页面

(1)List<String> 类型

List<String> servers = null ;
//……………………
mv.addObject("servers", servers);
 <select id="serverSel" name="server" onchange="changeServer()">
#foreach ($server in $servers)
<option value="$server" >$server</option>
#end
</select>

(2)List<Bean>类型

List<User> qqList  = null ;
//……………………
mv.addObject("qqEmailList", qqList);
#foreach ($qe in $qqEmailList)
<input type="checkbox" name="userEmail" value="$qe.userId">$qe.userEmail<br />
#end

2.在controller中不跳转页面直接跳转下一个方法

mView.setViewName("redirect:sendEmail.do");
return mView;

或者如下方法:

return new RedirectView("tasks.do");

3.用spring自带的JavaMailSenderImpl类和MimeMessageHelper类发送可以包含html内容的邮件

JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
//设置邮件服务器主机和端口
mailSender.setHost(serverBean.getHost());
mailSender.setPort(Integer.valueOf(serverBean.getPort())); MimeMessage mailMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");
//设置收件人
messageHelper.setTo(toEmail);
//设置发件人以及发件人名字
messageHelper.setFrom(serverBean.getFromEmail(), "EquipOne");
//设置邮件标题
messageHelper.setSubject(subject);
//设置邮件内容,以及是否允许为html代码
messageHelper.setText(content, true);
//构建properties类,存放SMTP服务器参数
Properties prop = new Properties();
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.timeout", "250000");
final String from = serverBean.getFromEmail();
final String password = serverBean.getPassword();
//创建账号密码验证器,验证邮件服务器登陆账号
Authenticator auth = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
};
//Session.getInstance(prop, auth)根据邮件会话属性和密码验证器构造一个发//送邮件的session,并放入JavaMailSenderImpl类 mailSender.setSession(Session.getInstance(prop, auth));
mailSender.send(mailMessage);

4.mybatis插入语句返回所插入的主键的值,加上(useGeneratedKeys="true" keyProperty="对应表字段的类属性")

<resultMap type="EmailDetail" id="emailDetail">
<result property="emailId" column="email_id" />
<result property="emailContent" column="email_content" />
<result property="emailSubject" column="email_subject" />
<result property="emailStatus" column="email_status" />
</resultMap>
<insert id="addData" parameterType="com.netcloud.mail.entity.EmailDetail" useGeneratedKeys="true" keyProperty="emailId">
insert into t_email_detail(email_content,email_subject,email_status) values(#{emailContent},#{emailSubject},#{emailStatus})
</insert>

velocity +mybatis+ springMvc构建邮件服务器知识总结的更多相关文章

  1. Linux安全应用之防垃圾邮件服务器的构建

    Linux安全应用之防垃圾邮件服务器的构建 一.垃圾邮件产生的原因 垃圾邮件(SPAM) 也称作UCE(Unsoticited Commercial Email.未经许可的商业电子邮件)或UBE(Un ...

  2. Linux 小知识翻译 - 「邮件服务器」

    这次聊聊「邮件服务器」. 邮件服务器上通常会运行2个服务端软件,「SMTP服务器」和「POP服务器或者IMAP服务器」. 这2个东西,也许使用邮件客户端的人立马就明白了.因为设置邮件客户端的时候,需要 ...

  3. 【Mail】搭建邮件服务器(LAMP&plus;Postfix&plus;Dovcot&plus;PostfixAdmin&plus;Roundcubemail)

    大纲 一.mail部署说明 二.安装准备 三.LMAP环境配置 四.配置postfixadmin 五.配置postfix 六.配置dovecot 七.测试SMTP和POP3服务 八.配置Roundcu ...

  4. Windows Server 2003搭建邮件服务器

    Windows Server 2003搭建邮件服务器 由于Windows Server 2003默认是没有安装我们搭建邮件服务器所需要的POP3和SMTP服务的,因此需要我们自己来安装.方法如下: 1 ...

  5. 用Gitolite 构建 Git 服务器

    转载 Gitolite 构建 Git 服务器 作者: 北京群英汇信息技术有限公司 网址: http://www.ossxp.com/ 版本: 0.1-1 日期: 2010-10-07 14:52:19 ...

  6. 使用Vert&period;x构建Web服务器和消息系统

    如果你对Node.js感兴趣,Vert.x可能是你的下一个大事件:一个建立在JVM上一个类似的架构企业制度. 这一部分介绍Vert.x是通过两个动手的例子(基于Vert.x 2.0). 当Node.j ...

  7. Gitolite 构建 Git 服务器

    Gitolite 构建 Git 服务器 Gitolite 构建 Git 服务器作者: 北京群英汇信息技术有限公司网址: http://www.ossxp.com/版本: 0.1-1日期: 2010-1 ...

  8. MyBatis&colon;学习笔记&lpar;1&rpar;——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  9. linux 邮件服务器

    邮件通信系统协议及概念:软件角色:MUA:邮件客户端MTA:邮件服务端MDA:邮件服务端模块邮件客户端:Mail User Agent,邮件用户代理邮件服务端:Mail Transfer Agent, ...

随机推荐

  1. angularjs与require的集成摘抄

    基于requireJS和angularJS的前端技术架构 :http://blog.163.com/liuyong_xiaxia/blog/static/17435525520156341446981 ...

  2. js验证中英文

    // 验证中英文 function check_en_ch(_value){ var reg_en_num = /^[0-9A-Za-z\'\"\,\.\!\?\:\s|“|”|‘|’|!| ...

  3. Runtime的理解与实践

    Runtime是什么?见名知意,其概念无非就是"因为 Objective-C 是一门动态语言,所以它需要一个运行时系统--这就是 Runtime 系统"云云.对博主这种菜鸟而言,R ...

  4. Mycat 分片规则详解--单月小时分片

    实现方式:单月内按照小时拆分,最小粒度是小时,一天最多可以有24个分片,最少1个分片,下个月从头开始循环 优点:使数据按照小时来进行分时存储,颗粒度比日期(天)分片要小,适用于数据采集类存储分片 缺点 ...

  5. netty的解码器和粘包拆包

    Tcp是一个流的协议,一个完整的包可能会被Tcp拆成多个包进行发送,也可能把一个小的包封装成一个大的数据包发送,这就是所谓的粘包和拆包问题 粘包.拆包出现的原因: 在流传输中出现,UDP不会出现粘包, ...

  6. qmp的简单使用

    QMP是一种基于JSON格式的传输协议,可使用QMP与一个QEMU虚拟机实例进行交互,例如查询虚拟机的相关状态等,以下就QMP的使用进行简单介绍. 可以通过libvirt向一个运行的虚拟机发送qmp命 ...

  7. 百度编辑器 Ueditor

    针对与编辑器里面的图片的存储问题:\ueditor\1.4.3\php\conf.json 文件里面 /* 前后端通信相关的配置,注释只允许使用多行方式 */{/* 上传图片配置项 */“imageA ...

  8. APP 自动化测试封装结构模式

    原文出处http://www.toutiao.com/a6268089772108333314/ 做过UI自动化测试同学,都会深深体会几个痛点:维护量大.适配量大.编写代码巨大等.基于这些问题,大家都 ...

  9. 使用Nginx后如何在web应用中获取用户ip及原理解释

    当nginx作为反向代理功能时,转发请求到后端服务器 通常需要使用如下命令为转发的请求增加请求头 X-Forwarded-For proxy_set_header X-Forwarded-For &q ...

  10. 关于lua 5&period;3 服务端热更新流程

    脚本的热更新的流程都大同小异, 第一步先保存旧代码的块的数据, 第二部加载新的代码块,第三步将旧代码块的局部和全局数据拷贝到新代码块的对应的 变量中. 在服务器热更新中,主要考虑热更的内容是什么, 一 ...