手头在做一个项目,需要在线发送邮件,于是习惯性地上网去搜索,找了不少,不过很多代码都很长、很乱,加上我开始测试的时候是在IXWebHosting的服务器上,一直提示无法连接邮件服务器,郁闷了很久。
其实戒烟如你的要求不高,基本需求是:源代码使用UTF-8编码,邮件内容使用BASE64编码,符合用户的基本使用习惯,能发送纯文本邮件即可。
坐在公交车上突然间想到,很多大型程序都有发送邮件的功能,比如说某个知名的PHP论坛,以前试用的时候邮件是发送成功了的,于是下载下来研究,找其中发送邮件的源代码,很不幸,被我找到了,而且还注意到了那个文件开头的一句声明“This is NOT a freeware, use is subject to license terms”,当然,用作研究是例外,而且我这里有所改动,不过就不提这个论坛的名称了哈!
下面我来分析这个代码:
- $set = array(
- 'server' => 'smtp.126.com', // 邮件服务器
- 'port' => '25', // 服务器端口
- 'auth' => '1', // 是否需要验证身份
- 'username' => 'username', // 登录用户名
- 'password' => 'password', // 登录密码
- 'from' => '发件人 <email@address.com>' // 发件人
- );
上面这段代码是定义登录服务器的基本信息的,包括服务器地址、端口、是否需要身份验证、登录用户名、登录密码、发件人等等,用过类似于FOXMAIL邮件客户端的人都知道怎么设置。提醒注意的是'from'元素的值,在user和<之间有一个空格,往下面看你就明白怎么回事了。
- $mail = array(
- 'to' => '收件人 <tomail@address.com>', // 收件人地址
- 'message' => '试一试自己写的SMTP!!!', // 邮件正文
- 'subject' => 'SMTP邮件!', // 邮件标题
- );
这段代码是发邮件时必备的东西了,收件人地址、邮件正文、标题,和上面一样,收件人地址里也有一个空格。
- $charset = 'utf-8'; // 邮件使用的字符编码,这里用的是UTF-8
- $delimiter = "\r\n"; // 邮件正文中换行符的样式
这两行就不要多说了吧!
#1
