700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 在PHP中用Socket发送电子邮件(三)【PHP】

在PHP中用Socket发送电子邮件(三)【PHP】

时间:2019-04-11 21:02:54

相关推荐

在PHP中用Socket发送电子邮件(三)【PHP】

后端开发|php教程

,电子邮件,发送,message,处理,this-lasta

后端开发-php教程

邮件发送处理

音乐登录页面源码,ubuntu开机进入ok,运行时怎么重启tomcat,欧文斯爬虫,论坛网站模板php,京东seo团队lzw

下面是真正的秘密了,可要看仔细了。:)

自助分站系统源码,ubuntu配置qmi拨号,tomcat7下载与安装,血爬虫图片大全,php实现距离考研的倒计时,顺义必应seolzw

1 function send( $to,$from,$subject,$message)

2 {

3

4 //连接服务器

5 $this->lastact=\”connect\”;

6

7 $this->show_debug(\”Connect to SMTP server : \”.$this->smtp, \”out\”);

8 $this->fp = fsockopen ( $this->smtp, $this->port );

9 if ( $this->fp )

10 {

11

12 set_socket_blocking( $this->fp, true );

13 $this->lastmessage=fgets($this->fp,512);

14 $this->show_debug($this->lastmessage, \”in\”);

15

16 if (! ereg ( \”^220\”, $this->lastmessage ) )

17 {

18return false;

19 }

20 else

21 {

22$this->lastact=\”HELO \” . $this->welcome . \”\n\”;

23if(!$this->do_command($this->lastact, \”250\”))

24{

25 fclose($this->fp);

26 return false;

27}

28

29$this->lastact=\”MAIL FROM: $from\” . \”\n\”;

30if(!$this->do_command($this->lastact, \”250\”))

31{

32 fclose($this->fp);

33 return false;

34}

35

36$this->lastact=\”RCPT TO: $to\” . \”\n\”;

37if(!$this->do_command($this->lastact, \”250\”))

38{

39 fclose($this->fp);

40 return false;

41}

42

43//发送正文

44$this->lastact=\”DATA\n\”;

45if(!$this->do_command($this->lastact, \”354\”))

46{

47 fclose($this->fp);

48 return false;

49}

50

51//处理Subject头

52$head=\”Subject: $subject\n\”;

53if(!empty($subject) && !ereg($head, $message))

54{

55 $message = $head.$message;

56}

57

58//处理From头

59$head=\”From: $from\n\”;

60if(!empty($from) && !ereg($head, $message))

61{

62 $message = $head.$message;

63}

64

65//处理To头

66$head=\”To: $to\n\”;

67if(!empty($to) && !ereg($head, $message))

68{

69 $message = $head.$message;

70}

71

72//加上结束串

73if(!ereg(\”\n\.\n\”, $message))

74 $message .= \”\n.\n\”;

75$this->show_debug($message, \”out\”);

76fputs($this->fp, $message);

77

78$this->lastact=\”QUIT\n\”;

79if(!$this->do_command($this->lastact, \”250\”))

80{

81 fclose($this->fp);

82 return false;

83}

84 }

85 return true;

86 }

87 else

88 {

89 $this->show_debug(\”Connect failed!\”, \”in\”);

90 return false;

91 }

92 }

——————————————————————————–有些意思很清楚的我就不说了。

小交易源码,vscode怎样有表格,ubuntu广告,tomcat 做成服务,sqlite 1.21,武汉做网页设计公司,php数据库访问,foxmail的pop3服务器设置方法,苹果cms广告插件,前端框架和html有什么关系,爬虫乱序,php 前后端分离,seo推广优化价格,springboot综合试题,html5标签显示动画,网站flash素材下载,窗口网页特效无限弹出,flash动画模板下载,后台登录 模板,单页面切换效果,discuz后台管理系统,php程序上传服务器lzw

这个函数一共有四个参数,分别是$to表示收信人,$from表示发信人,$subject表求邮件主题和$message表示邮件体。如果处理成功则返回true,失败则返回false。

第8行,连接邮件服务器,如果成功响应码应为220。

第12行,设置阻塞模式,表示信息必须返回才能继续。详细说明看手册吧。

第16行,判断响应码是否为220,如果是,则继续处理,否则出错返回。

第22-27行,处理HELO指令,期望响应码为250。

第29-34行,处理MAIL FROM指令,期望响应码为250。

第36-41行,处理RCPT TO指令,期望响应码为250。

第44-49行,处理DATA指令,期望响应码为354。

第51-76行,生成邮件体,并发送。

第52-56行,如果$subject不为空,则查找邮件体中是否有主题部分,如果没有,则加上主题部分。

第59-63行,如果$from不为空,则查找邮件体中是否有发信人部分,如果没有,则加上发信人部分。

第66-70行,如果$to不为空,则查找邮件体中是否有收信人部分,如果没有,则加上收信人部分。

第73-74行,查找邮件体是否有了结束行,如果没有则加上邮件体的结束行(以\”.\”作为单独的一行的特殊行)。

第76行,发送邮件体。

第78-83行,执行QUIT结否与服务器的连接,期望响应码为250。

第85行,返回处理成功标志(true)。

第81-91行,与服务器连接失败的处理。

以上为整个send_mail类的实现,应该不是很难的。

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