失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > [php]php curl smtp发送邮件

[php]php curl smtp发送邮件

时间:2024-05-20 11:48:20

相关推荐

[php]php curl smtp发送邮件

php教程|php手册

php,curl,smtp,发送,邮件,公司,云,平台,把,fsockopen,关,掉了,如果,要,使用,smtp,

php教程-php手册

公司的云平台把fsockopen关掉了,如果要使用smtp外网的邮箱来发送邮件的话 只能试试使用curl来进行了

先google了一下,发现很多问相关问题的但没有相关的解答,在phpclasses里也没有找到相关的类于是自己边看stmp的相关协议边开始尝试curl

SMTP协议

这个在网上可以找到多相关的例子,可以自己实验一下使用telnet去连接mail服务器

许愿墙v2.0源码,ubuntu如何重启命令,什么是分布爬虫,php抽象类在什么时候用,南平京东seolzw

$ telnet 邮箱SMTP服务地址 25

Trying 邮箱服务IP地址…

Connected to 邮箱SMTP服务地址.

Escape character is ‘^]’.

220 exchange邮箱服务器地址 Microsoft ESMTP MAIL Service ready at Sat, 2 Jun 15:02:12 +0800

EHLO 127.0.0.1

250-exchange邮箱服务器地址 Hello [邮箱服务IP地址]

250-SIZE

250-PIPELINING

250-DSN

250-ENHANCEDSTATUSCODES

250-X-ANONYMOUSTLS

250-AUTH NTLM LOGIN

250-X-EXPS GSSAPI NTLM

250-8BITMIME

250-BINARYMIME

250-CHUNKING

250-XEXCH50

250 XRDST

AUTH LOGIN

334 VXNlcm5hbWU6

用户名(base64_encode)

334 UGFzc3dvcmQ6

密码(base64_encode)

235 2.7.0 Authentication successful

MAIL FROM:发件箱地址

250 2.1.0 Sender OK

RCPT TO:收件箱地址

250 2.1.5 Recipient OK

DATA

354 Start mail input; end with .

要发送的内容(这里的相关的规范有很多)

.

250 2.6.0 Queued mail for delivery

QUIT

221 2.0.0 Service closing transmission channel

Connection closed by foreign host.

c l log4net 源码下载,vscode 编辑php,勒索病毒 ubuntu,tomcat架包,sqlite 日期处理,阿里云服务器 换ip,环状图插件,字节前端框架,python3.0写爬虫,反爬虫php,石家庄网站建设seo,音乐网站手机模板,手机端网页日期控件,丽子美妆 模板,页面布局模板,库存管理系统的作用,程序文档说明lzw

php测试代码:

开心乐园 源码论坛,ubuntu内存不够崩溃,看tomcat的版本号,养殖爬虫饲料,电影信息网站源码php,阳江seo学习lzw

1 <?php

2 header(“content-type:text/html;charset=utf-8”);

3 $smtp = array(

4“url”=> “邮箱SMTP服务器地址”,

5“port”=> “邮箱SMTP服务器端口”, // 一般为25

6“username” => “用户名”,

7“password” => “密码”,

8“from”=> “发件地址”,

9“to” => “收件地址”,

10“subject” => “测试一下标题”,

11“body”=> “测试一下内容”

12 );

13

14 $CRLF = “\r\n”;

15 $test = “”;

16 $curl = curl_init();

17

18 curl_setopt($curl, CURLOPT_URL, $smtp[‘url’]);

19 curl_setopt($curl, CURLOPT_PORT, $smtp[‘port’]);

20 curl_setopt($curl, CURLOPT_TIMEOUT,10);

21

22 function inlineCode($str){

23 $str = trim($str);

24 return $str?’=?UTF-8?B?’.base64_encode($str).’?= ‘:”;

25 }

26

27 function buildHeader($headers){

28$ret = ”;

29foreach($headers as $k=>$v){

30 $ret.=$k.’: ‘.$v.”\n”;

31}

32return $ret;

33 }

34

35 //

36 $header = array(

37‘Return-path’=>”,

38‘Date’=>date(‘r’),

39‘From’=> ”,

40‘MIME-Version’=>’1.0’,

41‘Subject’=>inlineCode($smtp[‘subject’]),

42‘To’=>$smtp[‘to’],

43‘Content-Type’=>’text/html; charset=UTF-8; format=flowed’,

44‘Content-Transfer-Encoding’=>’base64’

45 );

46 $data = buildHeader($header).$CRLF.chunk_split(base64_encode($smtp[‘body’]));

47

48

49 $content = “EHLO “.$smtp[“url”].$CRLF; // 先得hello一下

50 $content .= “AUTH LOGIN”.$CRLF.base64_encode($smtp[“username”]).$CRLF.base64_encode($smtp[“password”]).$CRLF; // 验证登陆

51 $content .= “MAIL FROM:”.$smtp[“from”].$CRLF; // 发件地址

52 $content .= “RCPT TO:”.$smtp[“to”].$CRLF; // 收件地址

53 $content .= “DATA”.$CRLF.$data.$CRLF.”.”.$CRLF; // 发送内容

54 $content .= “QUIT”.$CRLF; // 退出

55

56 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl接收返回数据

57 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $content);

58 $test = curl_exec($curl);

59 var_dump($test);

60 echo “

\r\n”;

61 var_dump($content);

62

63 // 结束

64 curl_close($curl);

以上只是测试的php

包测试+修改花了近6个小时让产品的代码兼容了fsockopen和curl

以后有空写个兼容fsockopen和curl简单发送邮件的smtp类

think in coding

摘自 bluefrog

如果觉得《[php]php curl smtp发送邮件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。