Lucee Server Email 发送异常

前两天有客户提出最近自动发送Email的功能好像不是很稳定,很多次mail-to-list都接收不了邮件,我在本地也做了多次尝试,这里记录一下。

将SMTP设置成一个未知的Host,使用发送邮件时,程序中Catch不到任何异常。后来我就在\WEB-INF\lucee\logs\mail.log文件中查看有没有错误信息:

未知SMPT Server时,mail.log会记录如下信息:

"ERROR","Thread-186","04/08/2016","21:09:00","","mail;Unknown SMTP host: smtp.mail.test.com;
  nested exception is:
	java.net.UnknownHostException: smtp.mail.test.com;Unknown SMTP host: smtp.mail.test.com;
  nested exception is:
	java.net.UnknownHostException: smtp.mail.test.com
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1225):1225
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322):322
	at javax.mail.Service.connect(Service.java:236):236
	at lucee.runtime.net.smtp.SMTPSender.run(Unknown Source):-1
"

Email用户名或密码不对时,mail.log会记录如下信息:

"ERROR","Thread-182","04/08/2016","20:18:37","","mail;553 Mail from must equal authorized user
;553 Mail from must equal authorized user

	at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1333):1333
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:906):906
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:535):535
	at lucee.runtime.net.smtp.SMTPSender.run(Unknown Source):-1
"

后来我打开Lucee的Web Administrator页面,进入Services – Tasks页面,就能看到type=mail的Task列表,这些都是自己发送异常的Email。Lucee会把这些发送异常的Email放在Task列表中,于第二天的那个时间再次尝试发送。
Lucee Email Task List

怎么判断浏览器是否是IE11

新建is_ie11.html,添加js代码如下:

console.log(navigator);

在IE11中打开这个文件,按下F12,看控制台里输出的userAgent为:

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; GWX:DOWNLOADED; rv:11.0) like Gecko

所以,我们可以这样判断浏览器是否是IE11

//jQuery
var isIE11 = navigator.userAgent.test(/Trident.*rv[ :]*11\./);
if(isIE11){
	return true;
}

//js
var ie11Regex = new RegExp("Trident.*rv[ :]*11\.");
if(ie11Regex.test(navigator.userAgent)){
	return true;
}

Git 基本命令

查看Git全局设置:

git config -l

从远程仓库克隆项目到本地:

git clone https://github.com/sunpengcheng/my_blog.git /d/Projects/my_blog

查看远程仓库的fetch和push地址:

git remote -v

查看本地分支:

git branch

删除本地分支:

git branch -d xxxxx

查看远程分支:

git branch -r

删除远程分支:

git push origin :dev

jQuery Datepicker 开始日期不能大于结束日期

今天在测试Datepicker时,发现了如下情况,原代码是:
[js]
$(“#start-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate: “Now”,
onSelect:function(dateText,inst){
$(“#end-date”).datepicker(“option”,”minDate”,new Date(dateText);
}
});
[/js]
在IE11、Chrome、FF下,new Date(dateText)这种方式都是可以生成 Wed Mar 02 2016 08:00:00 GMT+0800 这样的标准时间。而到了IE8下却不能生成,出现了NaN。

原来是因为IE8不像IE11和Chrome及FF那样聪明,new Date()这个方法如果带参数初始化时,应该使用像new Date(yyyy,mm,dd)这样的标准格式才能生成日期;

所以代码改成了这样:
[js]
$(“#start-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate:”Now”,
onSelect:function(dateText,inst){
$(“#end-date”).datepicker(“option”,”minDate”,new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});
[/js]
也会有同学有这样的需求,开始日期不能大于结束日期,于是就可以这样写了:
[js]
$(“#start-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate:”Now”,
onSelect:function(dateText,inst){
$(“#end-date”).datepicker(“option”,”minDate”,new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});

$(“#end-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate:”Now”,
onSelect:function(dateText,inst){
$(“#start-date”).datepicker(“option”,”maxDate”,new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});
[/js]