gpt4 book ai didi

php中通过curl smtp发送邮件

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php中通过curl smtp发送邮件由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

先google了一下,发现很多问相关问题的但没有相关的解答,在phpclasses里也没有找到相关的类于是自己边看stmp的相关协议边开始尝试curl  SMTP协议  这个在网上可以找到多相关的例子,可以自己实验一下使用telnet去连接mail服务器  。

复制代码代码如下

$ telnet 邮箱SMTP服务地址 25  Trying 邮箱服务IP地址...  Connected to 邮箱SMTP服务地址.  Escape character is '^]'.  exchange邮箱服务器地址 Microsoft ESMTP MAIL Service ready at Sat, 2 Jun 2012 15:02:12 +0800  EHLO 127.0.0.1  -exchange邮箱服务器地址 Hello [邮箱服务IP地址]  -SIZE  -PIPELINING  -DSN  -ENHANCEDSTATUSCODES  -X-ANONYMOUSTLS  -AUTH NTLM LOGIN  -X-EXPS GSSAPI NTLM  -8BITMIME  -BINARYMIME  -CHUNKING  -XEXCH50  XRDST  AUTH LOGIN  VXNlcm5hbWU6  用户名(base64_encode)  UGFzc3dvcmQ6  密码(base64_encode)  2.7.0 Authentication successful  MAIL FROM:发件箱地址  2.1.0 Sender OK  RCPT TO:收件箱地址  2.1.5 Recipient OK  DATA  Start mail input; end with <CRLF>.<CRLF>  要发送的内容(这里的相关的规范有很多)  .  2.6.0 <0b476f30-3b96-4e3d-84d2-395a96d34000@exchange邮箱服务器地址> Queued mail for delivery  QUIT  2.0.0 Service closing transmission channel  Connection closed by foreign host.  。

php测试代码:  。

复制代码代码如下

<?php  header("content-type:text/html;charset=utf-8");  $smtp = array(  "url" => "邮箱SMTP服务器地址",  "port" => "邮箱SMTP服务器端口", // 一般为25  "username" => "用户名",  "password" => "密码",  "from" => "发件地址",  "to" => "收件地址",  "subject" => "测试一下标题",  "body" => "测试一下内容"  );  $CRLF = "\r\n";  $test = "";  $curl = curl_init();  curl_setopt($curl, CURLOPT_URL, $smtp['url']);  curl_setopt($curl, CURLOPT_PORT, $smtp['port']);  curl_setopt($curl, CURLOPT_TIMEOUT,10);  function inlineCode($str){  $str = trim($str);  return $str?'=?UTF-8?B?'.base64_encode($str).'?= ':'';  }  function buildHeader($headers){  $ret = '';  foreach($headers as $k=>$v){  $ret.=$k.': '.$v."\n";  }  return $ret;  }  //  $header = array(  'Return-path'=>'<'.$smtp['from'].'>',  'Date'=>date('r'),  'From'=> '<'.$smtp['from'].'>',  'MIME-Version'=>'1.0',  'Subject'=>inlineCode($smtp['subject']),  'To'=>$smtp['to'],  'Content-Type'=>'text/html; charset=UTF-8; format=flowed',  'Content-Transfer-Encoding'=>'base64'  );  $data = buildHeader($header).$CRLF.chunk_split(base64_encode($smtp['body']));  $content = "EHLO ".$smtp["url"].$CRLF; // 先得hello一下  $content .= "AUTH LOGIN".$CRLF.base64_encode($smtp["username"]).$CRLF.base64_encode($smtp["password"]).$CRLF; // 验证登陆  $content .= "MAIL FROM:".$smtp["from"].$CRLF; // 发件地址  $content .= "RCPT TO:".$smtp["to"].$CRLF; // 收件地址  $content .= "DATA".$CRLF.$data.$CRLF.".".$CRLF; // 发送内容  $content .= "QUIT".$CRLF; // 退出  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl接收返回数据  curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $content);  $test = curl_exec($curl);  var_dump($test);  echo "<br/>\r\n";  var_dump($content);  // 结束  curl_close($curl);  。

以上只是测试的php  包测试+修改花了近6个小时让产品的代码兼容了fsockopen和curl  以后有空写个兼容fsockopen和curl简单发送邮件的smtp类 。

最后此篇关于php中通过curl smtp发送邮件的文章就讲到这里了,如果你想了解更多关于php中通过curl smtp发送邮件的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com