邮箱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'=>'', 'date'=>date('r'), '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
\r\n; var_dump($content); // 结束 curl_close($curl); ?>
复制代码
花了近6个小时让产品的代码兼容了fsockopen和curl;有时间再研究下兼容fsockopen和curl简单发送邮件的smtp类。