PHP脚本使用gmail,126邮箱发送邮件


想要这样一个功能:直接在命令行中使用某个邮箱发送邮件,内容简短,只是一个字符串.之前看过php web开发模块大全里面有个用ZendMail发送邮件的例子,不过用Zend要拷一大堆文件,所以想找一个轻量级的PHP脚本,结果饶了一圈回来,还是Zend Mail最好用,下面是通过126邮箱和gmail邮箱发送邮件的方法要点.

126邮箱

<?php
    
require_once 'Zend/Mail.php';
    
require_once 'Zend/Mail/Transport/Smtp.php';

    
$config = array('auth' => 'login',
                    
'username' => 'w.203@126.com',
                    
'password' => 'pass');
    
$transport new Zend_Mail_Transport_Smtp('smtp.126.com',$config);
    
$mail new Zend_Mail('GBK');
    
$mail->setBodyHtml('This is body');
    
$mail->setFrom("w.203@126.com","邮件标题");//一封邮件中from可以包含一段文字和邮件地址,to也如此
                                              //并且还可以设置subject
    
$mail->addTo("name@gmail.com","ToMessage");
    
$mail->setSubject('Subject');
    
$mail->send($transport);

?>

gmail

<?php

//gmail中可能要配置端口
//如果没有使用ssl,则是是使用TLS/STARTTLS端口
//否则是ssl端口
//gmail的ssl端口是465
//TLS/STARTTLS是587
    
require_once 'Zend/Mail.php';
    
require_once 'Zend/Mail/Transport/Smtp.php';

    
$config = array(                    
                    
'auth' => 'login',
                    
'username' => 'name',
                    
'password' => 'pass',
                    
'ssl' => 'ssl',
                    
'port' => 465);
    
$transport new Zend_Mail_Transport_Smtp('smtp.gmail.com',$config);
    Zend_Mail::setDefaultTransport(
$transport);
    
$mail new Zend_Mail('GBK');
    
$mail->setBodyHtml('This is body');
    
$mail->setFrom("name@gmail.com","邮件标题");//一封邮件中from可以包含一段文字和邮件地址,to也如此
                                              //并且还可以设置subject
    
$mail->addTo("w.203@126.com","ToMessage");
    
$mail->setSubject('Subject');
    
$mail->send($transport);
    

?>

使用gmail需要开启opssl的支持,在php.ini中去掉php_openssl.dll前面的分号,并且将extensiondir设置为'./ext',即可.zend framework可到http://framework.zend.com/releases/ZendFramework-1.11.5/ZendFramework-1.11.5-minimal.tar.gz去下载.