•
PHPMailer 是一个专门用于 PHP 语言的邮件发送类,功能十分地强大,丰富了 PHP 本身单一的 mail() 函数。支持 SMTP 等甚至于附件。
PHPMailer 遵守 LGPL 授权,可以免费下载,当前版本是PHPMailer v2.0.0 rc2 更新于2007 年11月16日。
注:下载时有后缀分别为 .tar.gz 和 .zip 之分,其实它们包含的文件都是一样的,只是压缩格式不同,.tar.gz 经过了双重压缩,文件更小罢了,WinRAR 软件能正确地解压这两种格式。
◆使用方法:
☆前注:解压后,文件包中会有一个 examples 文件夹,里面有“pop3_before_smtp_test.php” 和 “test1.php” 两个文件。其中第一个文件是教授基本的使用方法(见下),而 “test1.php” 则主要介绍了一些新增的特性,这些都在同文件夹下的“index.html” 作出了详细的说明,另一个文件“contents.html” 则是邮件内容,以后可以替换为邮件模版,用以增加邮件的规范化和丰富化。
☆基本方法:pop3_before_smtp_test.php
<?php
require ‘class.phpmailer.php’;
require ‘class.pop3.php’;
$pop = new POP3();
// 建立对象,收邮件
$pop->Authorise(‘pop3.example.com’, 110, 30, ‘mailer’, ‘password’, 1);
// 设置收邮件的用户信息
// pop3.example.com:改写成邮箱的 pop3 服务器
// 例如,163 为 pop3.163.com
// mailer:用户名
// password:密码
$mail = new PHPMailer();
// 建立对象,发邮件,如果仅仅是发邮件可以去掉上面
// pop3 部份以及对 class.pop3.php 的包含
$mail->IsSMTP();
// 不变
$mail->SMTPDebug = 2;
$mail->IsHTML(true);
// 是否使支持 HTML 邮件的发送,默认为 false ,
// 为了方便后面使用“邮件模版”,我们把它改为 true
$mail->Host = ‘relay.example.com’;
// 发邮件的服务器
// 例如,163邮箱 为 smtp.163.com
$mail->From = ‘mailer@example.com’;
// 你的邮箱
$mail->FromName = ‘Example Mailer’;
// 你的姓名
$mail->Subject = ‘My subject’;
// 邮件标题
$mail->Body = ‘Hello world’;
// 邮件内容,这里可以使用新特性调用邮件模版,具体详情看后面。
$mail->AddAddress(‘name@anydomain.com’, ‘First Last’);
// 收件人邮箱和姓名
if (!$mail->Send())
{
echo $mail->ErrorInfo;
}
?>
◆新增特性-邮件模版:test1.php
☆前注:新增特性就单从 test1.php 来看主要是增加了对邮件模版的支持,可以将以下代码添加到上面就可以实现邮件模版功能了。
……省略部分代码……
$body = $mail->getFile(‘contents.html’);
// 调用邮件模版
$body = eregi_replace(“[\]“,”,$body);
// 替换内容,例如邮件中的姓名及称谓
$subject = eregi_replace(“[\]“,”,$subject);
// 替换主题,必要的时候上面都可以做一些针对性修改
……省略部分代码……
◆特注:
(1)注意事项:
getFile()函数内部使用了fopen()函数来实现对文件的调用,函数中设置了能调用的最大文件为 1M,所以不能调用大于 1M 的文件,调用的文件既可以是本地文件也可以是远程文件,PHPMailer 中的全部方法请参考这里。
(2)文件的填写方法:
第一行为 UNIX 系统使用,即是相对地址;第二行是 Windows 系列系统的用法,即是绝对地址;第三、四行则为 URL 的使用范例,即网络地址,这些规范同样适用于上面的 getFile() 函数。
<?
$fp = fopen(“/home/rasmus/file.txt”, “rb”);
$fp = fopen(“c:\\mydata\\info.txt”, “rb”);
$fp = fopen(“http://www.php.net/”, “rb”);
$fp = fopen(“ftp://user:password@my.com/”, “w”);
?>
(3)emegi_replace(“$var1″,”$var2″,$var3)函数:
emegi_replace(“$var1″,”$var2″,$var3) 函数跟 emeg_replace() 函数功能上差不多,都是在 $var3 中查找 $var1 并将其替换为 $var2 ,不同的是 eregi_replace() 函数不区分大小写。更多资料参考这里!
(4)针对 Gmail 的 ssl 加密链接:
前两天才搞定的企业邮局就是为了用来进行 Email 的发送,不过 ssl 加密的 Gmail 并不能简单地使用上面的方法解决,大家可以看看下面这些文章,在文章中提到了解决方法,不过我还没来得及做实验验证!
———-Update 2007.12.1———-
在新版的 PHPMailer 中实现 Gmail 发邮件,只需要在 class.phpmailer.php 中查找
if(eregi(‘^(.+):([0-9]+)$‘, $hosts[$index], $hostinfo)) {
$host = $hostinfo[1];
$port = $hostinfo[2];
} else {
$host = $hosts[$index];
$port = $this->Port;
}
更改为:
if(eregi(‘^#(([a-z]+://)?[^:]+):(\d+)#i‘, $hosts[$index], $hostinfo)) {
$host = $hostinfo[1];
$port = $hostinfo[3];
} else {
$host = $hosts[$index];
$port = $this->Port;
}
就可以了,有变化的地方做了加粗与倾斜显示。
使用方法:
……
$mail->Host = “ssl://smtp.gmail.com:465″; // SMTP servers
……
Gmail 的端口号为 465 ,这种修改方法同时支持原有方法,即如果是163,则可以使用以下方法:
……
$mail->Host = “smtp.163.com”; // SMTP servers
……
———-End Update ———-
阅读文章:PHPMailer con GMail
阅读文章:让phpmailer支持gmail发送邮件
阅读文章:终于能够通过phpmailer使用gmail账号发送邮件了
(5)邮件模版下载:
网上流传甚广的30套邮件模版 直接下载,挺不错的,在国内 126,163,QQ 这些邮箱中经测试表现都很正常,在 Gmail 中显示不正确, HotMail 未测试。
(6)成功发送邮件后却发现是乱码,怎么办呢?
PHPMailer 使用的字符集为 iso-8859-1,这个字符集并不能准确的显示中文,修改办法是给前面的程序增加一行代码,将字符集指定为 UTF-8:
$mail->CharSet = “UTF-8″; // 这里指定字符集!
为了保险,我们再修改 class.phpmailer.php 文件,找到第 50 行,将
var $CharSet = ‘iso-8859-1′;
修改为:
var $CharSet = ‘UTF-8′;
经测试,这种修改后均能在 126\163\qq\gmail 中正确显示。
(7)后续计划:
看到国外这篇《HTML Email Guide》挺不错的,准备抽时间给作者发邮件要求准许汉化,然后进行翻译!虽然我的英语不怎么样。如果实现的话将是我的第二篇译作了,第一篇是对 Tiddy Wiki 的汉化。
•
在成功购卖 HostMonster 后,会收到一封邮件,里面包含了域名解析的内容,要求你将域名的 DNS(又名 Name Servers) 设置为 NS1.HOSTMONSTER.COM 和 NS2.HOSTMONSTER.COM。同时他们也会也指出空间所在服务器的 ip 地址(如: 74.220.207.123)。
一般情况下,将 Name Servers 设置为他们提供的就可以正确解析域名了,但是如果想使用昨天提到的Google 企业套件那么就不得不重新设置域名解析方式了,因为 HostMonster 提供的对域名管理的操作太少了,完成不了 MX 记录的更改,只有在域名注册商那里才能比较好的操作实现。
◇首先:等录你的域名管理面板,将全部 Name Servers 改为域名注册商的域名解析服务器。
◇接下来:添加一条 A 记录 ,主机名为空,将 ip 地址设为 你空间所在 ip (如我的为 74.220.207.123)。
注意:主机名为空,则可以实现 yourdomain.com 访问网站,同时还可以作二级域名解析,如可以设置 bbs.yourdomain.com 这样的二级域名,按理说 www.yourdomain.com 也可以作为二级域名理解,但是事实上空间服务商不允许单独设置这样的二级域名,www 被视为根域。
◇第三步:第二步只是实现了 yourdomain.com 这样的访问方式,但是还有很多人习惯使用 www.yourdomain.com 访问网站,针对这种情况,我们可以再添加一条 A 记录,主机名为”*”,ip 地址同样设为第二步的ip(如我的为 74.220.207.123)。
注意:
主机名为”*”,则可以实现泛解析,即是说无论有没有设置 bbs.yourdomain.com 这样的一个二级域名,它都会直接将使用这个域名重定向到 yourdomain.com ,当然这只是在单独使用泛解析的情况下,如果已经设置了二级域名,则会指向该二级域名指定的地方。
有些域名注册商是A 记录不允许使用不同的主机名指向同一个ip,比如我使用的易名中国以前就是,现在却可以了。

疑问:
1,既指定了二级域名解析,又指定了泛解析,那到底依那个的呢?
答:就目前我的测试来看,这样的设置可以同时实现 www.yourdomain.com 和 yourdomain.com 的解析,但对 ssdfdfsf.yourdomain.com 这样的任意二级的解析就不正确了(在单独使用泛解析的情况下应该转向 yourdomain.com 的吧!),如果在域名服务商设置了 bbs.yourdomain.com 这样的二级域名,同时又在空间服务商绑定了这样的二级域名,则可以正确解析 bbs….这样的二级域名。
2,既然只是实现 www.yourdomain.com 和 yourdomain.com 的解析,为什么第三步不设置一个 www 二级域名而使使用了泛解析?
答:理论上可以,但是在空间服务商那里是不允许绑定主机名为 www 的二级域名,这样的二级域名被视为根域,不知道其它地方如何,至少我使用的 HostMonster 和 25idc.com 都是这种状况。
3,我的域名服务商不允许两个 A 记录指向同一个ip怎么办?
答:这种情况下有一种变通的方法,可以使用域名服务商的“域名转发”功能,将 www.yourdomain.com 转发到 yourdomain.com ,反过来将 yourdomain.com 转发到 www.yourdomain.com 也行,这样访问者虽然来自两个网址,但访问的内容却实际在一个网址上。
•

为了给自己的某个域名建立同域邮箱,所以打算使用企业邮局,结果空间服务商的企业邮箱速度、功能上都不理想,记得以前试用过的 Hotmail 速度同样不理想,另一个就是 Sogou 了,不过对他们的服务还是不太放心,以前网易就不突然取消了服务吗!
突然想到以前还试用过 Google 的 Apps(Google 企业应用套件)服务,里面就包含了邮局服务,不过那时申请被拒绝了,怀着侥幸的心理又去申请,结果提示所在地区不能申请这项服务,最后在网上找了一些文章,发现可以使用代理申请,费了一些周折终算还是把 Google Apps 服务申请下来了。
申请的用户大小可以尽量大一点也没关系,看到有网友申请了 1000 个,而我在当前 10 个就已经可以了,不过为了以后方便也填了 500 个。
申请方法很简单,可以看这里,申请完以后对邮局的配置方法可以参考一些域名解析文章。

Google Apps 内容:
Gmail
为每个帐户提供 5.296646 GB 存储空间的电子信箱,并提供邮件搜索工具及内置的聊天功能。
初始页
从同一位置访问您的收件箱、日历、文件和团体信息,并搜索网络。
控制面板
在线管理域名和用户帐户。
Google Talk
免费的全球文字通信和语音通话。
Google 文件
创建并共享文档,实现实时协作。
帮助和支持
访问内容丰富的在线知识库,并通过电子邮件获得支持。
Google 日历
使用可共享的日历,安排协调会议与其他活动。
Page Creator(英文版)
轻松创建并发布网页。
•

受 iPhone 的影响,也关注了一下国人的 Meizu M8,到时能否买一款还得看情况。以下信息全部转载自魅族官方论坛
M8音乐界面



M8电话界面


M8短信界面



横向的软键盘是按照标准 qwerty 排列的,竖向我们把第一排的 iop 和第二牌的 kl 另外放一行,并命名为 iop 键盘,同时这样的排列我们注册了专利, iop 键盘的好处就是每个按键比 qwerty 大了很多,并且把人们使用 qwerty 键盘的习惯影响到最小.
屏幕锁定的状态界面:
点按钮并滑动到半透明区外开锁或直接打开音乐/拨号等其他功能。

网友制作的线控:

外形尺寸:
59*107*11.9mm
配置:
CPU:ARM11 667MHZ+视频解码/编码器 video CODEC
内存:内置128MB DDR SDRAM缓存
制式:GSM+EDGE(2.75G )
操作系统:基于WIN CE6.0内核,MEIZU 自主开发的OS
屏幕:3.4英寸 TFT VGA+(720*480)1600万色 触摸屏 全视角
摄像头:300W像素(自动对焦,无闪光灯)
电池:1400mAH左右
其他:WIFI,蓝牙2.0,TV OUT\LINE OUT,USB HOST/OTG
功能:基本通讯功能、音频文件播放、视频文件播放(720*480 30桢/S H263/264 MPEG2 MPEG4 WMV等主流视频格式,包括rm,rmvb)、30桢/S的视频录制、WIFI无线上网、光控(根据光线强弱自动调节屏幕亮度),方向及加速感应器(能感应手持状态自动调节屏幕显示方向)
估计价格: 4GB/8GB/16GB 1990/2390/2990元
上市时间:不详
•
因为要做一个对数据库进行简单匹配查询的搜索框,所以对 MySql 进行关键字匹配查询作了一些了解。
书上给出的匹配查询一般是这两种。
(1)精确匹配,使用等号(=).
例如:select * from table where item = ‘$value”;
(2)模糊匹配,使用 like ‘%$value%’。
例如:select * from table where like ‘%$value%’;
在一般情况下,这两种查询就能完成任务了,甚至在使用多个关键字的时候也可以变通地使用 like ‘%$value_A%’ or like ‘%$value_B%’… 这样的组合语句完成,但如果数据库较大,内容较多的时候就不得不考虑使用全文搜索了,因为使用 like 进行模糊匹配效率十分低下。
而MySQL对“全文搜索(又称:全文索引)”字段做了索引来优化搜索,同时MySQL使用自然语言来智能地对结果评级,以去掉不相关的项目。
“全文搜索”在 MySQL 中是一个 FULLTEXT 类型索引。FULLTEXT 索引用于 MyISAM 表。曾尝试在 InnoDB 表中创建FullText 索引出错。
修改表方法:
所以如果表所用的引擎非 MyISAM 可以先备份 MySql, 然后在 PHPMyAdmin 中使用操作菜单来更改表的引擎为 MyISAM。接下来在需要进行“全文搜索”的字段点击“全文搜索”创建。
如果已经确定了表的引擎是 MyISAM,也可直接在命令行模式下使用以下命令:
ALTER TABLE 表名 ADD FULLTEXT INDEX (表字段);
拥有了数据和索引,就可以使用MySQL的全文搜索了,最简单的“全文搜索”是带有MATCH…AGAINST语句的SELECT查询:
SELECT 表字段 FROM 表名 WHERE MATCH (全文搜索表字段) AGAINST (‘搜索字符串’);
更多资料:
不过,MySQL对中文“全文搜索”的支持饱受争议,看这篇讨论就知道了,另外也有很多变通的方法,效率应该不会好到哪去。也有人拿 dvBBS 的实现方法进行了分析 ,这应该才算得是真正意义上的“全文搜索”,因为这些实现方法要考虑“中文分词技术”。
当然,也发现了一个国人自己开发的插件[插件一][插件二][ 插件三],支持中文分词,如果你不知道什么是中文分词,Google (谷歌)中国的博客网志的这篇《数学之美 系列二 — 谈谈中文分词》可以对它有个比较清楚的了解。
另外一篇《MYSQL-中文检索匹配与正则表达式》也附上,以备不时之需。
其实我需要使用的查询在用 like 的状况下就能解决掉,因为数据量总体来说不会太大,所以不会出现很大的问题。不过,我还是准备改用“全文搜索”,毕竟功能放在那里。这篇文章中涉及比较深入的三篇文章(…插件..、..dvBBS…、…正则表达式…)都没怎么看,还是一句话,用到的时候再翻翻。
另外一个比较奇怪的问题就是,关于MySQL 全文搜索的文章大都是 2005 – 2006 年间的,一篇 2007 年的也没看着,邪乎!
主要参考了以下文章:
http://www.linwan.com/database/7/118546027646510.html
http://publish.it168.com/2005/0921/20050921026101.shtml?positioncode=1546
http://www.googlechinablog.com/2006/04/blog-post_10.html
http://topic.csdn.net/t/20050118/19/3735846.html
http://hi.baidu.com/monobao/blog/item/c561ddea4dd86ed3d539c98f.html