直接使用邮件服务器发送,也就是php程序所在服务器上本来就是邮件服务器(即配置成SMTP邮件服务器),并且发送到的对方也必须是邮件服务器,比如QQ邮箱,163邮箱等等,他们直接也是使用SMTP协议
php程序拜托其他邮件服务器发送邮件(必须条件:该服务器可以上网),比如:使用zend提供的Zend_Mail插件发送邮件。
首先,拜托其他邮件服务器发送邮件,得有1系列的参数设置:比如:你得先在该邮件服务器上注册有邮箱,所以配置邮箱登陆名和密码是必须的,还有发送的主题,内容,接收者等等。
详细见代码:
<?php require_once 'Zend/Mail.php'; require_once 'Zend/Mail/Transport/Smtp.php';
class sendMail { private static $_config =array( 'auth' => 'login', 'username' => 'xxxxx@163.com', 'password' => 'xxxxx' ); // 定义SMTP的验证参数,设置正确的邮箱和登录密码
private static $_mail =null;
private static $_transport =null;
public static function send($title, $body, $address) { try { $transport = new Zend_Mail_Transport_Smtp('smtp.163.com',self::$_config);//实例化验证的对象 $mail = new Zend_Mail('UTF⑻'); // 实例化发送邮件对象 $mail->setBodyHtml($body); // 发送邮件的主体 $mail->setFrom('xxxx@163.com','');// 定义邮件发送使用的邮箱 $mail->addTo("$address",'');// 定义邮件的接收邮箱 $mail->setSubject($title); // 定义邮件主题 $mail->send($transport); // 履行发送操作 return true; } catch (Exception $e) { $e->getTrace(); return false; } } } |
代码关键部份已加有注释,就罗嗦了,有问题直接问我。
在需要邮件发送的时候,实例化sendMail类,然后调用该类的send方法传入相应参数便可。
详细见代码:
$title="测试"; $body='<h1>这是1封来自MarkTao的测试PHP邮件发送邮件!</h1><a href="#">请确认</a>'; $address = 'xxxx@qq.com'; $sendMail = newsendMail(); $sendMail->send($title, $body, $address); |
title 为邮件的主题(标题)
body为邮件内容,支持html格式。
address 接收邮件的地址
sendMail中的config,其实像这类配置参数之类的,最好还是可以配置到配置文件中去,然后读取,这样拓展性就更强1些了。
还有1种方式是通过PHPMailer,这个就不是使用zend内部的mail类了,需要去下载1些类包,然后引入使用。