但是邮件和短信相比在一些场景依然有着重要的意义和优势;
1:零成本;发邮件没有费用;
2:内容丰富且量大;邮件可以长篇大论;图文并茂;
3:增加访问量;用户很容易通过邮件中的链接访问网站;
好了;下面来来为thinkphp集成邮件系统;
示例项目:https://github.com/Tinywan/ThinkPhpStudy
一、引入phpmail
从示例项目中复制两个文件到自己的项目;
/ThinkPHP/Library/Org/Nx/class.phpmailer.php ;/ThinkPHP/Library/Org/Nx/class.smtp.php ;
二、设置配置项
//***********************************邮件服务器********************************** 'EMAIL_FROM_NAME' => 'tinywan@163.com', // 发件人 'EMAIL_SMTP' => 'smtp.163.com', // smtp 'EMAIL_USERNAME' => 'tinywan@163.com', // 账号 'EMAIL_PASSWORD' => '你的密码 // 授权密码而不是登陆的密码
三、配置163箱:
首先是要开启smtp服务:
配置文件中的信息在这里:
注意:开启过程中是要设置一个授权密码,这里的授权密码也就是配置文件中需用的那个密码,否则的话否则,SMTP connect() failed
'EMAIL_PASSWORD' => '你的密码 // 授权密码而不是登陆的密码
四、发送邮件的实际代码,这个在(ThinkPHP框架中的Function()函数中写着来)
/** * 发送邮件 * @param string $address 需要发送的邮箱地址 发送给多个地址需要写成数组形式 * @param string $subject 标题 * @param string $content 内容 * @return boolean 是否成功 */function send_email($address,$subject,$content){ $email_smtp=C('EMAIL_SMTP'); $email_username=C('EMAIL_USERNAME'); $email_password=C('EMAIL_PASSWORD'); $email_from_name=C('EMAIL_FROM_NAME'); if(empty($email_smtp) || empty($email_username) || empty($email_password) || empty($email_from_name)){ return array("error"=>1,"message"=>'邮箱配置不完整'); } require './ThinkPHP/Library/Org/Nx/class.phpmailer.php'; require './ThinkPHP/Library/Org/Nx/class.smtp.php'; $phpmailer=new \Phpmailer(); // 设置PHPMailer使用SMTP服务器发送Email $phpmailer->IsSMTP(); // 设置为html格式 $phpmailer->IsHTML(true); // 设置邮件的字符编码' $phpmailer->CharSet='UTF-8'; // 设置SMTP服务器。 $phpmailer->Host=$email_smtp; // 设置为"需要验证" $phpmailer->SMTPAuth=true; // 设置用户名 $phpmailer->Username=$email_username; // 设置密码 $phpmailer->Password=$email_password; // 设置邮件头的From字段。 $phpmailer->From=$email_username; // 设置发件人名字 $phpmailer->FromName=$email_from_name; // 添加收件人地址,可以多次使用来添加多个收件人 if(is_array($address)){ foreach($address as $addressv){ $phpmailer->AddAddress($addressv); } }else{ $phpmailer->AddAddress($address); } // 设置邮件标题 $phpmailer->Subject=$subject; // 设置邮件正文 $phpmailer->Body=$content; // 发送邮件。 if(!$phpmailer->Send()) { $phpmailererror=$phpmailer->ErrorInfo; return array("error"=>1,"message"=>$phpmailererror); }else{ return array("error"=>0); }}
五、发送邮件调用函数示例:
/** * 发送邮件 */ public function send_email() { $name = I('post.name', '这是一份测试邮件名称'); $address = I('post.address', '这是一份测试邮件发送的地址'); $phone = I('post.phone', '13669361192'); $email = '2680737855@qq.com'; $str = << 地址:$address 手机号:$phonehtml; $result = send_email($email, '这个邮件是我用来做测试的,亲!', $str); if ($result['error'] == 1) { var_dump($result); die; } var_dump('发送完成'); }
基本来源:http://baijunyao.com