> 백엔드 개발 > PHP 튜토리얼 > PHP에서 컬 smtp를 통해 이메일을 보내는 예

PHP에서 컬 smtp를 통해 이메일을 보내는 예

WBOY
풀어 주다: 2016-07-25 09:05:18
원래의
964명이 탐색했습니다.
  1. /**
  2. 功能:邮件发送
  3. url: http://bbs.it-home.org
  4. */
  5. header("content-type:text/html;charset=utf-8");
  6. $smtp = array(
  7. "url" => "邮箱SMTP服务器地址",
  8. "port" => "邮箱SMTP服务器端口", // 一般为25
  9. "username" => "用户名",
  10. "password" => "密码",
  11. "from" => "发件地址",
  12. "to" => "收件地址",
  13. "subject" => "测试一下标题",
  14. "body" => "测试一下内容"
  15. );
  16. $CRLF = "rn";
  17. $test = "";
  18. $curl = curl_init();
  19. curl_setopt($curl, CURLOPT_URL, $smtp['url']);
  20. curl_setopt($curl, CURLOPT_PORT, $smtp['port']);
  21. curl_setopt($curl, CURLOPT_TIMEOUT,10);
  22. function inlineCode($str){
  23. $str = trim($str);
  24. return $str?'=?UTF-8?B?'.base64_encode($str).'?= ':'';
  25. }
  26. function buildHeader($headers){
  27. $ret = '';
  28. foreach($headers as $k=>$v){
  29. $ret.=$k.': '.$v."n";
  30. }
  31. return $ret;
  32. }
  33. //
  34. $header = array(
  35. 'Return-path'=>'<'.$smtp['from'].'>',
  36. 'Date'=>date('r'),
  37. 'From'=> '<'.$smtp['from'].'>',
  38. 'MIME-Version'=>'1.0',
  39. 'Subject'=>inlineCode($smtp['subject']),
  40. 'To'=>$smtp['to'],
  41. 'Content-Type'=>'text/html; charset=UTF-8; format=flowed',
  42. 'Content-Transfer-Encoding'=>'base64'
  43. );
  44. $data = buildHeader($header).$CRLF.chunk_split(base64_encode($smtp['body']));
  45. $content = "EHLO ".$smtp["url"].$CRLF; // 先得hello一下
  46. $content .= "AUTH LOGIN".$CRLF.base64_encode($smtp["username"]).$CRLF.base64_encode($smtp["password"]).$CRLF; // 验证登陆
  47. $content .= "MAIL FROM:".$smtp["from"].$CRLF; // 发件地址
  48. $content .= "RCPT TO:".$smtp["to"].$CRLF; // 收件地址
  49. $content .= "DATA".$CRLF.$data.$CRLF.".".$CRLF; // 发送内容
  50. $content .= "QUIT".$CRLF; // 退出
  51. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl接收返回数据
  52. curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $content);
  53. $test = curl_exec($curl);
  54. var_dump($test);
  55. echo "
    rn";
  56. var_dump($content);
  57. // 结束
  58. curl_close($curl);
  59. ?>
复制代码

花了近6个小时让产品的代码兼容了fsockopen和curl;有时间再研究下兼容fsockopen和curl简单发送邮件的smtp类。



원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿