首页 > 代码库 > Zend_Mail 邮件发送(SMTP方式)

Zend_Mail 邮件发送(SMTP方式)

Zend_Mail邮件发送

转载请注明出处,尊重原创:http://blog.csdn.net/a437629292/article/details/41700009

一、 邮件发送方式:

1.直接邮件服务器发送:

         直接使用邮件服务器发送,也就是php程序所在服务器上本来就是邮件服务器(即配置成SMTP邮件服务器),并且发送到的对方也必须是邮件服务器,比如QQ邮箱,163邮箱等等,他们直接也是使用SMTP协议

2. 委托其他邮件服务器发送:

         php程序委托其他邮件服务器发送邮件(必须条件:该服务器可以上网),比如:使用zend提供的Zend_Mail插件发送邮件。

二、 SMTP形式邮件发送:

         首先,委托其他邮件服务器发送邮件,得有一系列的参数设置:比如:你得先在该邮件服务器上注册有邮箱,所以配置邮箱登陆名和密码是必须的,还有发送的主题,内容,接收者等等。

         详细见代码:

<?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-8‘); // 实例化发送邮件对象

            $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>这是一封来自MarkTao的测试PHP邮件发送邮件!</h1><a href=http://www.mamicode.com/"#">请确认</a>‘;

               $address = ‘xxxx@qq.com‘;

               $sendMail = newsendMail();

               $sendMail->send($title, $body, $address);

title 为邮件的主题(标题)

body为邮件内容,支持html格式。

address 接收邮件的地址

四、 总结

   sendMail中的config,其实像这种配置参数之类的,最好还是可以配置到配置文件中去,然后读取,这样拓展性就更强一些了。

   还有一种方式是通过PHPMailer,这个就不是使用zend内部的mail类了,需要去下载一些类包,然后引入使用。

Zend_Mail 邮件发送(SMTP方式)