PHP使用smtp发送邮件
来源:互联网 发布:浪潮云会计软件 编辑:程序博客网 时间:2024/05/17 05:13
PHP 使用smtp发送邮件,首先你要有个邮箱,可以是163的,可以是新浪的,不建议使用QQ的,因为在
测试邮件发送的时候,QQ经常判断邮件为垃圾邮件的!在开发之前要先设置邮箱开启smtp,一般在邮箱
设置中可以开启!好吧,以下是两个方法,由于是在thinkphp3.2.1的框架上写的,所有有些地方会写
得奇怪!如果套用到其他框架或低于thinkphp3.2的版本,都要做小量的修改
public function _sendmail($uemail,$subject,$body)
{
$msetting=M('smtp');
$config_mail = $msetting->find(1);
$mailend = explode('.',$config_mail['smtp_host']);
$fromemail = $config_mail['smtp_user'].'@'.$mailend[1].'.'.$mailend[2];//构建邮箱
$smtpserver = $config_mail['smtp_host'];//SMTP服务器
$smtpserverport = $config_mail['smtp_port'];//SMTP服务器端口
$smtpusermail = $fromemail;//SMTP服务器的用户邮箱
$smtpuser = $config_mail['smtp_user'];//SMTP服务器的用户帐号
$smtppass = $config_mail['smtp_pass'];//SMTP服务器的用户密码
$smtpemailto = $uemail;//发送给谁
$mailsubject = $subject;//邮件主题
$mailtime = date("Y-m-d H:i:s");
$mailbody = $body;//邮件内容
$utfmailbody = iconv("UTF-8","GB2312",$mailbody);//转换邮件编码
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
import ("Org.Util.Smtp");
$newsmtp = new \Smtp();
$smtp = $newsmtp->smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这
里面的一个true是表示使用身份验证,否则不使用身份验证.
$newsmtp->debug = FALSE;//是否显示发送的调试信息 FALSE or TRUE
$ret = $newsmtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $utfmailbody,
$mailtype);
}
public function index(){
$sendmail = "kitwujiajian@sina.com";
$zhuti = "test smtp";
$body = "hello world";
$this->_sendmail($sendmail,$zhuti,$body);
}
当调用index()方法时候,会自动发邮件到kitwujiajian@sina.com,主题是test smtp,内容是hello
world,_sendmail()方法中,我将smtp的资料保存到数据库了,分别需要输入服务器,端口,邮箱账号
,邮箱密码
我用的是新浪邮箱
新浪的服务器 smtp.sina.com
端口 25
有种邮箱的服务器地址和端口不一样,这些在百度可以查到出来
源码我已经上传到我个人git上:http://git.oschina.net/kakenwu/case.git
PHP 使用smtp发送邮件,首先你要有个邮箱,可以是163的,可以是新浪的,不建议使用QQ的,因为在
测试邮件发送的时候,QQ经常判断邮件为垃圾邮件的!在开发之前要先设置邮箱开启smtp,一般在邮箱
设置中可以开启!好吧,以下是两个方法,由于是在thinkphp3.2.1的框架上写的,所有有些地方会写
得奇怪!如果套用到其他框架或低于thinkphp3.2的版本,都要做小量的修改
public function _sendmail($uemail,$subject,$body)
{
$msetting=M('smtp');
$config_mail = $msetting->find(1);
$mailend = explode('.',$config_mail['smtp_host']);
$fromemail = $config_mail['smtp_user'].'@'.$mailend[1].'.'.$mailend[2];//构建邮箱
$smtpserver = $config_mail['smtp_host'];//SMTP服务器
$smtpserverport = $config_mail['smtp_port'];//SMTP服务器端口
$smtpusermail = $fromemail;//SMTP服务器的用户邮箱
$smtpuser = $config_mail['smtp_user'];//SMTP服务器的用户帐号
$smtppass = $config_mail['smtp_pass'];//SMTP服务器的用户密码
$smtpemailto = $uemail;//发送给谁
$mailsubject = $subject;//邮件主题
$mailtime = date("Y-m-d H:i:s");
$mailbody = $body;//邮件内容
$utfmailbody = iconv("UTF-8","GB2312",$mailbody);//转换邮件编码
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
import ("Org.Util.Smtp");
$newsmtp = new \Smtp();
$smtp = $newsmtp->smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这
里面的一个true是表示使用身份验证,否则不使用身份验证.
$newsmtp->debug = FALSE;//是否显示发送的调试信息 FALSE or TRUE
$ret = $newsmtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $utfmailbody,
$mailtype);
}
public function index(){
$sendmail = "kitwujiajian@sina.com";
$zhuti = "test smtp";
$body = "hello world";
$this->_sendmail($sendmail,$zhuti,$body);
}
当调用index()方法时候,会自动发邮件到kitwujiajian@sina.com,主题是test smtp,内容是hello
world,_sendmail()方法中,我将smtp的资料保存到数据库了,分别需要输入服务器,端口,邮箱账号
,邮箱密码
我用的是新浪邮箱
新浪的服务器 smtp.sina.com
端口 25
有种邮箱的服务器地址和端口不一样,这些在百度可以查到出来
源码我已经上传到我个人git上:http://git.oschina.net/kakenwu/case.git
0 0
- PHP使用SMTP发送邮件
- PHP使用smtp发送邮件
- php 使用smtp发送邮件
- PHP使用SMTP发送邮件
- php使用smtp服务发送邮件 第一
- php使用smtp服务发送邮件 第二
- php使用smtp封装类发送邮件
- php 使用smtp发送邮件问题
- php SMTP发送邮件
- php smtp发送邮件
- php发送smtp邮件
- php邮件发送SMTP
- php SMTP 发送 邮件
- 使用SMTP发送邮件
- 使用SMTP发送邮件
- 使用SMTP发送邮件
- 使用SMTP发送邮件
- php通过smtp发送邮件
- iOS 几种传值方式(属性,代理,block,通知,本地存储,单例类)附Demo
- NETGEAR WNDR 4300路由器刷OpenWrt固件以及Shadowsocks+ChinaDNS配置教程总结
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
- OEM (Oracle 企业管理器)登录提示您的用户名/或口令无效的解决办法
- Java中 List移除相应元素的超简洁写法
- PHP使用smtp发送邮件
- kindeditor 上传控件
- 也谈OpenStack中的虚拟机HA
- asp.net后台将数据显示到页面div中
- thinkphp 3.2 整合PHPEXCEL
- Android--Activity生命周期
- Integer与int的比较
- memcached 的简单使用
- iOS开发-iOS中URL字符串的URLencode与URLdecode