澳门新葡亰平台游戏网站给帝国官方的前台友情链接申请插件增加个邮件提醒功能

澳门新葡亰平台游戏网站 9

帝国官方的前台友情链接申请插件非常的不错,相信大家一定也很喜欢,但什么东西都没有完美的,可能有的站长还是希望可以再增强一些,没错,的确有人想到了,就是给增加一个邮件提醒功能,还是非常人性化吧。

有了这个工具,在配置帝国CMS发送邮件设置时就可以先测试下配置是否正确。

前言:

首先,在帝国cms系统后台 — 这里设置好邮件发送参数。

感谢帝国CMS论坛版主trylife分享:

首先,要有一个用来发送的邮箱,首选网易!参考:,这里我注册了网易的免费企业邮箱。

修改插件中的 e/extend/doaddlink/index.php文件,找到

订阅更新_invite?id=3be2d8029d590d2b4d1b0a2ca06629afbe090540416a8574

并且我新建没多个邮箱用来对应不同的Job。

$sql=$empire-query("insert into {$dbtbpre}enewslink(lname,lpic,lurl,ltime,onclick,width,height,target,myorder,email,lsay,ltype,checked,classid) values('$lname','$lpic','$lurl','$ltime','0','$width','$height','$target','0','$email','$lsay','0','0','$classid');");

用途:经常给客户调试,反馈发送到邮箱,评论发到邮箱,在此之前都要测试邮件是否能正常发送;前身是一个文件刷新一次执行一次,只是这次做成插件形式了!用的少的人请路过。。。

技巧:

在下面增加

插件名称:帝国CMS工具箱 – 邮件测试工具插件版本:1.0提供编码:gbk/utf8
(简)支持帝国CMS版本:60~6.6插件作者:trylife

先确保邮箱的smtp功能能正常使用,现在jenkins机器上装一个foxmail,确定能正常收发。

include("../../class/SendEmail.inc.php"); $title=$lname."-申请友情链接"; $content='网站名称:'.$lname.'网址:'.$lurl.'联系邮箱:'.$email.'网站简介:'.$lsay; EcmsToSendMail("你的接收邮箱",$title,$content);

install.txt/****************************************************************************************EmpireCMS
Tools – EmailTesterEmpireCMS version 6.0~6.6Author :
trylife.cnlastupdate :
201207051604*****************************************************************************************/

很多种情况邮箱类型很多,先用最简单的网易邮箱配置好后,测试收发正常。待正常后再换成特定的企业邮箱来配置。

搞定了,简单吧,自己可以先测试下,先确保系统可以正常发送邮件。

1.上传选择gbk/utf8中的trylife文件夹到e目录下

正题:

2.系统-扩展菜单-管理菜单-添加菜单分类菜单名称:工具箱类型 :扩展菜单

Jenkins发送邮件有几种配置方式:

3.点击管理菜单-添加菜单菜单名称:邮件测试工具链接地址:../trylife/tools/EmailTester/

1、使用内置的邮件插进(使用全局的配置,只能有一个接收方)

4.如果是6.6以前版本则直接打开 网站地址+e/trylife/tools/EmailTester/ 使用

2、使用邮件扩展插件【Email Extension
Plugin】(使用全局的配置,能有多个接收方,但是只能有一个发送方)

本地下载:ecms-tools-201207051604.zip
8f726330675ab5a47a82eef6276b0ef6.zip(448.00 KB)

3、使用邮件扩展插件【Email Extension
Plugin】+Groovy脚本(实现每个Job对应不同的发送邮件,多个发送方)

因为QQ邮箱的便利性,收到邮件会弹窗提醒。我在测试mail函数发送的时候,以QQ邮箱为管理员收件箱。但在测试过程中,QQ邮箱中常常收不到邮件,或者进垃圾箱,这时只需将发件箱加入邮箱联系人就可以正常收到邮件了。

4、开发邮件转发中间件或者使用Foxmail这些工具来转发(每个Job发送到对应的邮箱,然后中间件负责转发到成员列表的邮箱。对发送插件没什么要求,只要能发送即可)

5、走国际路线,使用【Googole网上论坛】即groups.google.com(通过邀请实现进入群组,然后jenkins只要发送邮件到这个群组油箱即可)

具体操作:

注意:操作涉及的邮箱为163免费企业邮箱

1、使用内置的邮件插进

【系统管理】->【系统设置】->【邮件通知】->【高级】,配置如下:

澳门新葡亰平台游戏网站 1

参照如上配置,勾选【通过发送测试邮件测试配置】进行发送配置。

如果出现“Failed to send out
e-mail”,那么说明没有配置好【系统管理员邮件地址】

澳门新葡亰平台游戏网站 2

配置【系统管理员邮件地址】时,要和SMTP认证的用户名保持一致,不然无法发送。

澳门新葡亰平台游戏网站 3

上面的发送时有个小技巧,【显示的名称
<邮件地址>】(中间有个空格),这样的形式发送后会在邮件提示窗口显示邮件的别名。

最后,在Job页面上增加【增加构建后操作步骤】->【E-mail
Notification】,配置要接收人的邮箱,很显然,这里只能写一个人的地址,且配置单一。如果要发送到多人,可以尝试上述第4点开发中间件实现。

澳门新葡亰平台游戏网站 4

2、使用邮件扩展插件

【系统管理】->【系统设置】->【Extended E-mail
Notification】->【高级】,配置如下:

澳门新葡亰平台游戏网站 5

其余都留空,根据需要配置。

同样,【Use SMTP Authentication】下的【User
Name】也要和【系统管理员邮件地址】保持一致

配置【系统管理员邮件地址】时,要和SMTP认证的用户名保持一致,不然无法发送。

澳门新葡亰平台游戏网站 3

最后,在Job页面上增加【增加构建后操作步骤】->【Editable Email
Notification】,配置要接收人的邮箱列表

澳门新葡亰平台游戏网站 7

很显然,这里可以配置多个收件人,且配置点很多,包括构建点的触发发送,都可选择。

提示:触发点一般时always,这样发送的时候不管成功还是失败都会有日志。

澳门新葡亰平台游戏网站 8

提示2:构建的日志一般附带上去,这样方便排查

澳门新葡亰平台游戏网站 9

3、使用邮件扩展插件+Groovy脚本

通过上面第2部的配置可以发现,邮件发送人只能配置一个,而且只能是全局的;那么要对应每个Job对应不同的发送人就需要用到Groovy脚本去实现。

通过研究邮件扩展插件【Email Extension
Plugin】的源码发现,其提供的接口无法实现在每个Job下动态设置临时发送人,只能设置到全局的配置上面;如果设置到全局会有一个弊端,比如构建在同一个时间点发送邮件,那么可能存在零界点的情况导致发送人错乱,不过一般构建不会搭建太多,所以也可忽视。

在Job的【Editable Email Notification】上,打开【Advanced
Settings…】,在【Pre-send
Script】(Pre-send表示在发送前的事件)上写入设置邮件的Groovy脚本:

import jenkins.model.*
import hudson.model.*
import javax.mail.internet.InternetAddress

//设置发送邮件的用户名密码
def username="project1@email.com"
def password="123456"

//写入发送邮件的用户名密码到全局配置上,同时也可以设置smtp server这些选项;这里由于我采用统一的邮箱服务商,所以只需设置两项
def descriptor1 = Jenkins.instance.getDescriptorByType(hudson.plugins.emailext.ExtendedEmailPublisherDescriptor.class)
descriptor1.setSmtpAuthUsername(username)
descriptor1.setSmtpAuthPassword(password)
descriptor1.save()

//写入系统管理员邮件地址到全局配置上
def descriptor2 = Jenkins.instance.getDescriptorByType(hudson.tasks.Mailer.DescriptorImpl.class)
descriptor2.setAdminAddress(String.format("JenkinsJobEmail <%s>",username))
descriptor2.save()

//经过测试,这个是临时设置发送人的系统管理员邮件地址,不然上面设置后,发送时还是不会发生改变
def email = new InternetAddress(String.format("JenkinsJobEmail <%s>", username))
msg.setFrom(email)

4、开发邮件转发中间件(开发比较复杂,不建议使用)

每个Job发送到对应的邮箱,然后中间件负责转发到成员列表的邮箱。

中间件可以是服务,进程,或者用pythone写一个进程,运行在linux上,通过时间间隔获取指定邮箱的邮件,有新邮件时,再进行转发的特定的邮箱列表。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图