解决Jenkins Email Extension Plugin发送邮件失败

昨天用来测试的虚拟机不知道怎么回事,Firefox自动升级到8.0。结果就是我的WebDriver PythonBindings 在FF8下面是用不了的。现象就是,实例化一个Firefox Driver,然后 driver.get(‘http://www.google.com’),立刻返回,浏览器没有做任何响应。这个问题我自己不知道怎么解决,外面的世界貌似也没人遇到这个问题,究竟是没人碰到这个问题呢,还是很少用人PythonBinding?

恢复了VM镜像,然后让Jenkins重新跑起来,但是之后就遇到一个问题,发邮件一直失败。错误是

ERROR: Could not send email as a part of the post-build publishers.
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.2 We weren’t able to find the recipient domain. Please check for any
553-5.1.2 spelling errors, and make sure you didn’t enter any spaces, periods,
553 5.1.2 or other punctuation after the recipient’s email address. i6sm163233obl.2

搜了一下,应该是Jenkins标准的邮件插件是用空格来做多个邮件地址的分隔符,而Email Extension Plugin使用逗号分隔多个邮件地址的。但是这应该是一个很早之前的问题,已经被fix了。

傻傻地build了好多个以后,我想起来,恢复VM以后我是直接把之前的config.xml拷贝回去那个任务的文件夹里面的。进去打开那个config.xml,找到这一行:

<recipientList>$PROJECT_DEFAULT_RECIPIENTS</recipientList>

删掉。就好了。

刷新并且观察主机IP地址的好工具–Firefox DNS Flusher

首先祝大家端午节快乐。

前一段时间写了篇文章介绍了一个在Firefox下查看主机IP的插件,那个插件虽然不错,但是还是有点麻烦,要把鼠标挪过去才能看,最近发现一个更加好用方便的插件:Firefox DNS Flusher。这个插件使用起来很简单,安装完毕以后在Firefox的状态栏的右侧,会有一个显示当前主机IP的地方,如果修改完了HOSTS文件,想要刷新一下DNS,那么可以左键或者右键单击那个IP地址栏就可以了,实现了不重启浏览器也能使得最新的HOSTS文件生效!不错吧!不过测试的时候建议还是要重启一下浏览器,因为当前的域名的IP指向是刷新了,但是其他域名的呢?例如专门存放css或者js文件的子域名,他们不一定能被刷新哦。抓个图:

flusher

Firebug网络监视详解

Firebug是一个非常强大的Firefox附加组件,可以查看、编辑HTML,CSS,JavaScript,Cookies,是开发者必不可少的工具,现在Firebug的发行版本是1.3.3。

Firebug中有一个叫“网络”的面板,在这里我们可以看到各个元素的详细信息。

从左往右分别是

  • 请求部分
  • http状态码
  • 域名
  • 文件大小
  • timeline

请求部分

firebug_headers

这个地方是可以展开的,里面包括了请求的地址,请求的方法(是GET还是POST),请求的参数,Headers等等。

http状态码

如果是成功,就是200,404就是请求资源部存在,具体可以看这里

域名

查看该资源所属的域名,其实在请求部分中已经有这个信息了,不过在这里列出来会方便查找某些域名下在资源

文件大小

没什么可解释的

timeline

这里是重点。在Firebug 1.3.3中,timeline如下图所示:
Continue reading “Firebug网络监视详解”

用.htaccess文件实现WordPress图片防盗链

最近查看博客的LOG,发现有图片盗链的情况,而且文章也是原文照抄。不过没什么,有人抄,证明文章是有价值的;况且互联网上你COPY我,我COPY你,都是很常见的。不过问题在于我在虚机主机真的很虚,对流量有严格的限制,有图片盗链的话流量立刻就上去了,为了防止流量超标,决定做一下图片防盗链。

如果虚拟主机用的是CPanel,那么就比较方便,直接用Hotlink protection就好了,可惜我不是……

首先是搜到一个WordPress的插件防盗链的方法,叫做WordPress Hotlink protection plugin,号称在防盗链的同时不会影响输出的FEED,很高兴,下载下来试用了一下,图片防盗链成功,不过在Google Reader里面还是不能显示图片。看了一下代码,其实这个插件也是修改.htaccess文件。既然都是同样的方法,那么我直接放个.htaccess文件到uploads目录下,参考了网上若干.htaccess的写法,最后我的版本如下:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !magustest.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !testingjob.net [NC]
RewriteRule .*.(jpg|gif|png|bmp|swf|jpeg)$ xxx/forbid.png [R,NC,L]

RewriteCond 里面的第一行是说如果没有Referer(其实正确的英语拼写应该是Referrer),也就是直接访问,那么可以看。接下来的就是白名单,其中允许了谷歌,抓虾,鲜果等网站,那么在这些网站里面订阅我的博客的朋友也都能看到图片了。最后一行RewriteRule就是如果后缀名是那6个(都是吃流量的多媒体文件)的话,那么就显示为xxx/temp/forbid.png这个图片。

一般Linux类和Unix类虚机主机都支持重写.htaccess。这样子设置以后,在常见的阅读器中查看博客文章也能看到图片,同时也能有效地防止盗链图片而导致的流量超标。

Web测试中三个好用的Firefox插件

对于从事Web开发和测试的工程师来说,Firefox是一个优秀的浏览器;因为基于Firefox的插件有很多,这些插件都极大地方便了开发和测试的工作。其中有著名的FireBugFireCookieWeb Developer等,今天要介绍的是另外几个名气没那么大的Firefox插件,他们分别是FlagFoxRemove Cookie(s) for SiteScreengrab

1. FlagFox

这是一个可以将网站服务器所在国家的国旗显示在状态栏上的插件。它通过查询扩展内建的IP地址库,同时通过维基和Geotool获得更多信息。可以参考下图,当我们浏览一个网站的时候在浏览器地址栏的最右边会有一个中国国旗,因为该网站的服务器就在中国;然后把鼠标挪过去放在国旗上面,就会出现该网站的IP,这里就是60.28.210.209。

flagfox_1

其实我知道IP所在的国家对于测试没什么帮助,我只想知道我所访问的网站的IP。因为大家都知道做测试的时候经常需要配HOST,重启浏览器,但是有时候 配好了HOST重启完了还不一定生效;又或者HOST文件太大,有时候一个域名给配上了若干个IP(这是一个失误啦~);又或者是一个域名下有多台测试 机。我想在测试的过程中清楚地知道我现在究竟在访问哪台测试机。这就是FlagFox能起到的作用了
Continue reading “Web测试中三个好用的Firefox插件”

WordPress登陆后功能菜单没有改变的原因及其解决办法

这两天很奇怪,我登陆WP以后,首页的“功能”菜单居然没有改变,但是我的确是处于已经登陆的状态的。因为我装了Google Analyticator插件,并且设置了对于ADMIN是不记录Google统计的。在查看页面的源代码,看不到Google的统计代码,由此可以推断我是已经处于登陆的状态的,但是为什么“功能”菜单没有改变呢?如下图:


Continue reading “WordPress登陆后功能菜单没有改变的原因及其解决办法”

我喜欢的15个WordPress插件

1. All in One SEO Pack

一个功能强大的SEO插件,这个插件可以帮助你重新博客的标题,描述以及关键字,还能针对每个页面,每篇博客的标题进行定制。例如对于一篇博客,WordPress默认是把整站的标题放在前头,然后再跟上当前博客的标题,用户可以利用All in One SEO Pack来做一些修改,把当前博客的标题放到整站标题的前面。除了默认的内容外,All in One SEO Pack还允许用户增加自定义的Header信息,例如加上author等。对于单篇日志的描述和关键字都可以做修改;除此之外,All in One SEO Pack还能让用户自定义单篇博客的标题,这里说的标题是博客页面的标题,并不是博客的题目。2080原则,做好20%的事情,就能有80%的收获,我看过奶罩改公司做的SEO文档,相当详细,但是不是美国人都有时间做到100%,All in One SEO Pack能帮我们做到20% 😀

2. Google Analyticator
Continue reading “我喜欢的15个WordPress插件”