PHPMailer,不错的邮件发送类!

最近两天在写个小程序,需要用到邮件发送.找了个不错的邮件发送类:PHPMailer.网上评价本来就很不错.然后下载试用了,感觉确实强大。可以群发、可以附件、可以HTML、在WIN和Linux都能用。

下载地址:http://phpmailer.codeworxtech.com/

我还没有仔细的研究,在readme中有简单的例子,很容易用.
可惜现在网上没有很好的中文手册,官方也没有中文包。使用的时候会需要用到language里面的文件,留下en的那个就可以了.

对于之前有朋友说的Gmail的SSL连接原因,不能做SMTP邮箱,在新版本已经解决,但是需要添加下面的代码:

$mail->SMTPSecure   = "ssl";

并且,Gmail的SMTP的端口也不是一般的25,而是465,所以,如果使用Gmail邮箱发送还需要将端口设置为465:
$mail->Port   = "465";

并且,使用Gmail的app企业邮局也可以发送,我就是使用的Gmail的企业邮局测试发送的,但是SMTP username是整个邮箱地址name@domain.com而不是只是前面的用户名。
另外告诉大家一个用cn域名申请Gmail企业邮局的小花招:在输入域名的时候将cn中随便个字母大写就可以了.不过可能申请的时候需要用到代理。

最后,记得设置正确的编码哦,不然发送出去会乱码的。

慢慢研究中,欢迎大家指教和讨论。

[分享]《浅谈可扩展的MySQL数据库设计》By冯大辉@Alipay

在googleReader上看到Innobook更新了本新书《架构师》 ,下载的时候转到了infoQ——一个关注企业软件开发领域的变化与创新的网站。然后看到了来自支付宝的冯大辉(Fenng)的这个视频:《浅谈可扩展的MySQL数据库设计》。于是马上刷开来看了,视频不错,所以和朋友们分享下。

视频主要对如何设计可扩展的MySQL数据库进行了讲解。其中包括:数据库的扩展性、建立哪些基准测试、持久性连接、选取合适的数据类型、非关系型数据的存储选择、分区与Sharding、抛弃存储过程封装业务逻辑、合理使用Cache等等。虽然内容说的都是一些教基础东西,大家基本上都是知道这些准则的,但是在真正的应用开发中可能会有意无意的忽略了,(比如varchar长度的指定,数据处理在程序还是数据库等)所以有意的朋友可以看看。infoQ服务器在美国,所以在线看可能比较慢,我已上传到我博客服务器空间上,需要的朋友可以在这里下载:http://www.ivershuo.com/d/fengdahui-mysql.flv

可惜的是后面的讨论环节没有包括在视频里,而Fenng的博客在我这里现在打不开,我觉得一个人的观点提出来很多有心朋友一起讨论是一种比较好学习的方法,大家都分享自己的经验互相之间或多或少可以学到一些东西的。

将twitter添加到XHTML页面

因为twitter在国内的访问速度实在太慢,之前一直都没有将它放到博客。但是我的博客很久不更新,现在终于还是决定将twitter放上来,写twitter还是比较容易的。
没有去研究Twitter的API,因为它本身提供了添加到博客的widget,就直接用了。个人推荐用js版本的,因为可以通过CSS来改变输出样式。并且需要将后面的两个js链接放到网页<body>标签的最后(有统计代码的可以放统计代码之前,尤其用google统计的,如本博客),因为前面说了国内访问twitter那个慢啊...

但是,通过此方法添加在XHTML页面会出现不能通过W3C的验证,提示ul标签内需要至少一个li标签。

要解决这个问题,我们可以手动添加一个li标签,如本博客所表现的,并且在内容正式载入中用wait类语句代替也比较实用,等页面加载到页尾则调用twitter的js输出正式的内容,因为blogger.js通过innerHTML方法重写ul里的内容,所以之前的wait信息会自动替换调。

p.s:在上面的情况下如果twitter出现不能访问的情况(e.g:万恶的GFW),则wait信息会一直存在,可以通过在调用的两条js后面用js输出一个样式将wait信息的display设置为none,当然需要将此wait信息赋id或者class。

还有另外一种方法可以通过XHTML验证,那那就用js输出,如:

<div id="twitter_div">

<script type="text/javascript">
<!--//-->< ![CDATA[//><!--
document.write("

<ul id='twitter_update_list'>");
//-->< !]]>
</script>

完美调用新浪新闻的简单方法

早段时间叫我同学帮忙看看南华校友网,看看大家需要些什么样的功能,有个朋友说应该加个新闻的功能。

我当时就准备做个rss聚合来获取新浪搜狐的新闻的,后面就去找新浪新闻的RSS地址,然后无意找到新浪还有这个:http://rss.sina.com.cn/my_sina_web_rss_news.html?url=news/marquee/ddt.xml 可以直接调用新浪的新闻的,所以就放弃了再去写个RSS聚合了,呵呵。

然后马上就布置到南华校友网,因为我一直都是使用的Firefox ,测试也一开始是在Firefox上测试的,一切很好。然后是opera,也很好。最后IE,啪,不行了!老是弹出一个警告框提示页面无法打开,我当时就郁闷,一时也不知道是怎么回事。

我开始以为是我的IE出现了问题(因为基本上只有测试网页兼容和上工行支付宝才会用到IE),因为太久没用它,它给我闹脾气,然后在同学的IE上打开看,也是一样的问题。

于是就打开新浪提供的js地址看,看到在182有这样一句:

document.body.insertBefore(&nbsp;js,&nbsp;null);

而这里在我的网页上,UCH页面我调用了头尾模板,所以在新浪新闻调用之后及</body>标签之前还有内容需要载入的,此时</body>也没有载入,所以上面的代码才会在IE下出现错误。一种解决方法是可以判断页面载入完成了之后在执行这个操作,也可以将上面的语句改成类似:

document.getElementById("n_news").appendChild(js);

n_news是放js调用代码的div容器的id,这样就可以使页面内部数据照代码的顺序执行。

新闻调用的演示页面:http://www.nanhuau.com/news.php

还有,大家可以在调用的时候296行的:

code>document.getElementById(rss_news_sina_div).style.height = rss_news_sina_hight;code>

注释掉,因为这样才能自适用高度,至于宽度希望大家还是指定下,至于使用原新浪的方式还是自己的CSS那就看自己的喜好了,呵呵。

如果不想实用新浪指定的那些样式,可以将SinaRSSWriteCSS这整个函数去掉就可以了

然后将这个js文件保存上传到你的空间上,引用的时候替换新浪的路径到你的路径就可以了。

付:UCHome新闻速递插件下载(随便写的,功能比较简单,除上面说的调用新浪的新闻外,另加了百度的关键词新闻),演示地址在上面写出了,有需要的朋友就下着用吧
下载地址:http://www.iveshuo.cn/d/uchome_news_plug.7z

页码: