首页 后端开发 php教程 发送mime邮件类_PHP

发送mime邮件类_PHP

Jun 01, 2016 pm 12:37 PM
name th 发送 邮件

if(basename($PHP_SELF)== "class.html_mime_mail.inc")
{
  include  "fileinfo.inc";
  echo  "

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

<br>

    如果不含圖檔:<br>

     \$mail = new html_mime_mail();<br>

     \$html =\"HTML內容\";<br>

     \$mail->add_html(\$html, \$text);<br>

     \$mail->build_message();<br>

     \$mail->send(收信人,收信Email,發信人,發信Email,標題,額外Header);<br>

<br>

    <hr><br>

    如果含圖檔:<br>

    \$url=\"www.cuti.com.my/AD/\";    //圖檔位?FONT color="#007700">} ?FONT color="#007700">}頭無http:// 結尾有斜線<br>

    \$path=\"/MAIL/AD/\";    //圖檔路徑 結尾有斜線<br>

<br>

    \$filename1 = 'a.jpg';<br>

    \$backgrnd1 = fread(\$fp = fopen(\$path.\$filename1, 'r'), filesize(\$path.\$filename1));<br>

    fclose(\$fp);<br>

    ...依此類推...<br>

    \$filename6 = 'f.gif';<br>

        \$backgrnd6 = fread(\$fp = fopen(\$path.\$filename6, 'r'), filesize(\$path.\$filename6));<br>

        fclose(\$fp);<br>

    <br>

    \$mail->add_html_image(\$backgrnd1,\$filename1,'image/jpeg','http://'.\$url.\$filename1);<br>

    ...依此類推...<br>

    \$mail->add_html_image(\$backgrnd6,\$filename6,'image/gif','http://'.\$url.\$filename6);<br>

<br>

     \$mail = new html_mime_mail();<br>

     \$html =\"HTML含圖內容\";<br>

     \$mail->add_html(\$html, \$text);<br>

     \$mail->build_message();<br>

     \$mail->send(收信人,收信Email,發信人,發信Email,標題,額外Header);<br>

  ";<br>

        <br>

}<br>

/***************************************<br>

** Title.........: HTML Mime Mail class<br>

** Version.......: 1.26<br>

** Author........: Richard Heyes <richard.heyes><br>

** Filename......: html_mime_mail.class<br>

** Last changed..: 25/06/2000<br>

** Notes.........: Based upon mime_mail.class<br>

**                 by Tobias Ratschiller <tobias><br>

**                 and Sascha Schumann <sascha>.<br>

**                  - Thanks to Thomas Flemming for supplying a fix<br>

**                    for Win32.<br>

**                  - Made headers terminated by CRLF instead of LF, now<br>

**                    compliant with RFC822. Thanks to Pao-Hsi Huang.<br>

**                  - Fixed bug; certain mail systems (gmx.net in particular)<br>

**                    were rejecting mail because of a space character either<br>

**                    side of the equal sign on the boundary line. Thanks to<br>

**                    Peter Holm for notifying me.<br>

**                  - Fixed bug; $html_images was tested to be an array or not<br>

**                    but was set to be an array during object creation, so the<br>

**                    test always returned true. Thanks to Bob Silva for<br>

**                    notifying me.<br>

**                  - Fixed bug; when looping with $obj->send(), From: headers<br>

**                    were accumulating. Bummer. Thanks to Lance Rasmussen for<br>

**                    notifying me.<br>

**                  - See http://www.heyes-computing.net/scripts/ for a zip/tar<br>

**                    containing an example script.<br>

***************************************/ <br>

<br>

class html_mime_mail{<br>

<br>

        var $headers;<br>

        var $body;<br>

        var $multipart;<br>

        var $mime;<br>

        var $html;<br>

        var $html_text;<br>

        var $html_images = array();<br>

        var $cids = array();<br>

        var $do_html;<br>

        var $parts = array();<br>

<br>

/***************************************<br>

** Constructor function. Sets the headers<br>

** if supplied.<br>

***************************************/ <br>

        function html_mime_mail($headers =  '){<br>

                $this->headers = $headers;<br>

        }<br>

<br>

/***************************************<br>

** Adds a html part to the mail.<br>

** Also replaces image names with<br>

** content-id's.<br>

***************************************/ <br>

        function add_html($html, $text){<br>

                $this->do_html = 1;<br>

                $this->html = $html;<br>

                $this->html_text = $text;<br>

                if(is_array($this->html_images) AND count($this->html_images) > 0){<br>

                 /*      for($i=0; $i<count>html_images); $i++){<br>

                                $this->html = ereg_replace($this->html_images[$i]['name'], 'cid:'.$this->html_images[$i]['cid'], $this->html);<br>

                        }<br>

        */ <br>

                }<br>

        }<br>

<br>

/***************************************<br>

** Builds html part of email.<br>

***************************************/ <br>

        function build_html($orig_boundary){<br>

                $sec_boundary =  '=_'.md5(uniqid(time()));<br>

                $thr_boundary =  '=_'.md5(uniqid(time()));<br>

<br>

                if(count($this->html_images) == 0){<br>

                        $this->multipart.=  '--'.$orig_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: multipart/alternative;'.chr(10).chr(9). 'boundary="'.$sec_boundary. "\"\n\n\n";<br>

<br>

// ttj added below <br>

                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: text/plain'. "\n\n";<br>

                        $this->multipart.= $this->html_text. "\n\n";<br>

                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>

// ttj added above <br>

                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: text/plain'. "\n";<br>

                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>

                        $this->multipart.= chunk_split(base64_encode($this->html_text)). "\n\n";<br>

// ttj added below <br>

                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: text/html'. "\n\n";<br>

                        $this->multipart.= $this->html. "\n\n";<br>

                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>

// ttj added above <br>

<br>

                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: text/html'. "\n";<br>

                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>

                        $this->multipart.= chunk_split(base64_encode($this->html)). "\n\n";<br>

                        $this->multipart.=  '--'.$sec_boundary. "--\n\n";<br>

                }else{<br>

                        $this->multipart.=  '--'.$orig_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: multipart/related;'.chr(10).chr(9). 'boundary="'.$sec_boundary. "\"\n\n\n";<br>

<br>

                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: multipart/alternative;'.chr(10).chr(9). 'boundary="'.$thr_boundary. "\"\n\n\n";<br>

<br>

                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: text/plain'. "\n";<br>

                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>

                        $this->multipart.= chunk_split(base64_encode($this->html_text)). "\n\n";<br>

<br>

// ttj added below <br>

                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: text/html'. "\n\n";<br>

                        $this->multipart.= $this->html. "\n\n";<br>

                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>

// ttj added above <br>

<br>

                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>

                        $this->multipart.=  'Content-Type: text/html'. "\n";<br>

                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>

                        $this->multipart.= chunk_split(base64_encode($this->html)). "\n\n";<br>

                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>

<br>

                        for($i=0; $i<count>html_images); $i++){<br>

                                $this->multipart.=  '--'.$sec_boundary. "\n";<br>

                                $this->build_html_image($i);<br>

                        }<br>

<br>

                        $this->multipart.=  "--".$sec_boundary. "--\n\n";<br>

                }<br>

        }<br>

/***************************************<br>

** Adds an image to the list of embedded<br>

** images.<br>

***************************************/ <br>

        function add_html_image($file, $name =  ', $c_type= 'application/octet-stream', $location= '){<br>

                $this->html_images[] = array(  'body' => $file,<br>

                                               'name' => $name,<br>

                                               'c_type' => $c_type,<br>

                           'location' => $location,<br>

                                               'cid' => md5(uniqid(time())) );<br>

        }<br>

<br>

<br>

/***************************************<br>

** Adds a file to the list of attachments.<br>

***************************************/ <br>

        function add_attachment($file, $name =  ', $c_type= 'application/octet-stream'){<br>

                $this->parts[] = array(  'body' => $file,<br>

                                         'name' => $name,<br>

                                         'c_type' => $c_type );<br>

        }<br>

<br>

/***************************************<br>

** Builds an embedded image part of an<br>

** html mail.<br>

***************************************/ <br>

        function build_html_image($i){<br>

                $this->multipart.=  'Content-Type: '.$this->html_images[$i][ 'c_type'];<br>

<br>

                if($this->html_images[$i][ 'name'] !=  ') $this->multipart .=  '; name="'.$this->html_images[$i][ 'name']. "\"\n";<br>

                else $this->multipart .=  "\n";<br>

<br>

                $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n";<br>

        $this->multipart.=  'Content-Location:'.$this->html_images[$i][ 'location']. "\n";<br>

                $this->multipart.=  'Content-ID: html_images[$i][ 'cid']. ">\n\n";<br>

                $this->multipart.= chunk_split(base64_encode($this->html_images[$i][ 'body'])). "\n";<br>

        }<br>

<br>

/***************************************<br>

** Builds a single part of a multipart<br>

** message.<br>

***************************************/ <br>

        function build_part($i){<br>

                $message_part =  ';<br>

                $message_part.=  'Content-Type: '.$this->parts[$i][ 'c_type'];<br>

                if($this->parts[$i][ 'name'] !=  ')<br>

                        $message_part .=  '; name="'.$this->parts[$i][ 'name']. "\"\n";<br>

                else<br>

                        $message_part .=  "\n";<br>

<br>

                 // Determine content encoding. <br>

                if($this->parts[$i][ 'c_type'] ==  'text/plain'){<br>

                        $message_part.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>

                        $message_part.= chunk_split(base64_encode($this->parts[$i][ 'body'])). "\n";<br>

                }else{<br>

                        $message_part.=  'Content-Transfer-Encoding: base64'. "\n";<br>

                        $message_part.=  'Content-Disposition: attachment; filename="'.$this->parts[$i][ 'name']. "\"\n\n";<br>

                        $message_part.= chunk_split(base64_encode($this->parts[$i][ 'body'])). "\n";<br>

                }<br>

<br>

                return $message_part;<br>

        }<br>

<br>

/***************************************<br>

** Builds the multipart message from the<br>

** list ($this->parts).<br>

***************************************/ <br>

        function build_message(){<br>

                $boundary =  '=_'.md5(uniqid(time()));<br>

<br>

                $this->headers.=  "MIME-Version: 1.0\n";<br>

                $this->headers.=  "Content-Type: multipart/mixed;".chr(10).chr(9). "boundary=\"".$boundary. "\"\n";<br>

                $this->multipart =  ';<br>

//                $this->multipart.= "This is a MIME encoded message.\nCreated by html_mime_mail.class.\nSee http://www.heyes-computing.net/scripts/ for a copy.\n\n"; <br>

<br>

                if(isset($this->do_html) AND $this->do_html == 1) $this->build_html($boundary);<br>

                if(isset($this->body) AND $this->body !=  ') $this->parts[] = array( 'body' => $this->body,  'name' =>  ',  'c_type' =>  'text/plain');<br>

<br>

                for($i=(count($this->parts)-1); $i>=0; $i--){<br>

                        $this->multipart.=  '--'.$boundary. "\n".$this->build_part($i);<br>

                }<br>

<br>

                $this->mime = $this->multipart. "--".$boundary. "--\n";<br>

        }<br>

<br>

/***************************************<br>

** Sends the mail.<br>

***************************************/ <br>

        function send($to_name, $to_addr, $from_name, $from_addr, $subject =  ', $headers =  '){<br>

<br>

                if($to_name !=  ') $to =  '"'.$to_name. '" ';<br>

                else $to = $to_addr;<br>

<br>

                if($from_name !=  ') $from =  '"'.$from_name. '" ';<br>

                else $from = $from_addr;<br>

<br>

                mail($to, $subject, $this->mime,  'From: '.$from. "\n".$headers. "\n".$this->headers);<br>

        }<br>

<br>

/***************************************<br>

** Use this method to deliver using direct<br>

** smtp connection. Relies upon Manuel Lemos'<br>

** smtp mail delivery class available at:<br>

** http://phpclasses.upperdesign.com<br>

**<br>

** void smtp_send( string *Name* of smtp object,<br>

**                 string From address,<br>

**                 array  To addresses,<br>

**                 string Subject)<br>

***************************************/ <br>

        function smtp_send($smtp_obj, $from_addr, $to_addr, $subject){<br>

                global $$smtp_obj;<br>

                $smtp_obj = $$smtp_obj;<br>

<br>

                $this->headers .=  'From: '.$from_addr. "\n";<br>

                $this->headers .=  'Subject: '.$subject. "\n";<br>

<br>

                if(substr($this->headers, -2) ==  "\n") $this->headers = substr($this->headers,0,-2);<br>

                $this->headers = explode( "\n", $this->headers);<br>

<br>

                $smtp_obj->sendmessage($from_addr, $to_addr, $this->headers, $this->mime);<br>

        }<br>

<br>

}  // End of class. <br>

?><br>

 

                 

                     

         

         

         

    </count></count></sascha></tobias></richard.heyes>

登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Outlook邮件丢失从控制面板在Windows 11 Outlook邮件丢失从控制面板在Windows 11 Feb 29, 2024 pm 03:16 PM

Windows11的控制面板中是否缺少Outlook邮件图标?这一意外情况在一些依赖OutlookMail满足通信需求的个人中引起了困惑和担忧。为什么我的Outlook电子邮件没有显示在控制面板中?控制面板中没有Outlook邮件图标可能有几个可能的原因:Outlook未正确安装。从MicrosoftStore安装Office应用程序不会将邮件小程序添加到控制面板。mlcfg32.cpl文件在控制面板中的位置丢失。注册表中的mlcfg32.cpl文件路径不正确。操作系统当前未配置为运行此应用程序

Word邮件合并打印空白页 Word邮件合并打印空白页 Feb 19, 2024 pm 04:51 PM

如果您发现在使用Word打印邮件合并文档时出现空白页,这篇文章将对您有所帮助。邮件合并是一项便捷的功能,让您能够轻松创建个性化文档并发送给多个收件人。在MicrosoftWord中,邮件合并功能备受推崇,因为它能够帮助用户节省手动为每个收件人复制相同内容的时间。为了打印邮件合并文档,您可以转到邮件选项卡。但是一些Word用户反映,在尝试打印邮件合并文档时,打印机会打印空白页或根本不打印。这可能是由于格式设置不正确或打印机设置问题。尝试检查文档和打印机设置,确保打印前预览文档,以确保内容正确。如果

告别 Windows 11 中的远程邮件槽协议 告别 Windows 11 中的远程邮件槽协议 Apr 14, 2023 pm 10:28 PM

我们最近一直在谈论微软计划添加到其最新操作系统Windows11中的许多功能。但是,不要以为微软只会添加什么也不收回。事实上,这家软件巨头开始删除相当多的旧功能。在宣布计划在Windows12发布之前停用MSDT功能后,雷德蒙德开发人员带来了更多的坏消息。我们实际上是在谈论远程邮件槽旧版工具。当我们说您实际上想知道这一点时,请相信我们。Microsoft已开始在内部版本25314中弃用此功能我们相信您还记得,就在几天前,微软在其新的金丝雀频道发布了内部版本25314。上述版本包含许多新功能

如何修复 Outlook 电子邮件卡在发件箱问题 如何修复 Outlook 电子邮件卡在发件箱问题 May 01, 2023 am 10:01 AM

最近,许多用户报告了Outlook邮件卡在发件箱中的问题。即使多次尝试发送电子邮件,问题也没有得到解决。当您看到此问题并检查您的发件箱文件夹时,该消息将卡在那里。电子邮件卡在Outlook发件箱中的可能原因是:电子邮件中的附件超过了大小限制,这会减慢发送过程。邮件服务器的Outlook帐户身份验证问题Outlook或邮件服务器脱机Outlook中的发送/接收设置不正确。其他一些软件正在使用Outlook数据文件。防病毒软件会扫描传出的电子邮件。如果这个问题一直困扰着您并且您无法发送电子邮

PHP异步发送邮件:避免长时间等待邮件发送完成。 PHP异步发送邮件:避免长时间等待邮件发送完成。 Sep 19, 2023 am 09:10 AM

PHP异步发送邮件:避免长时间等待邮件发送完成。导言:在Web开发中,发送邮件是常见的功能之一。但是,由于邮件发送需要与服务器进行通信,往往会导致用户在等待邮件发送完成的过程中出现长时间的等待。为了解决这个问题,我们可以使用PHP异步发送邮件的方式来优化用户体验。本文将介绍如何通过具体的代码示例实现PHP异步发送邮件,并避免长时间的等待。一、理解异步发送邮件

抖音上如何发给别人文件?上发给别人文件怎么删除? 抖音上如何发给别人文件?上发给别人文件怎么删除? Mar 22, 2024 am 08:30 AM

在抖音上,用户不仅可以分享自己的生活点滴和才艺,还可以和其他用户互动交流。在这个过程中,有时候我们需要向其他用户发送文件,比如图片、视频等。那么,在抖音上如何发给别人文件呢?一、抖音上如何发给别人文件?1.打开抖音,进入你想要发送文件的聊天界面。2.点击聊天界面中的“+”号,选择“文件”。3.在文件选项中,你可以选择发送图片、视频、音频等文件。选择你想要发送的文件后,点击“发送”。4.等待对方接受你的文件,一旦对方接受,文件就会传输成功。二、抖音上发给别人文件怎么删除?1.打开抖音,进入你发送文

PHP邮件追踪功能:了解用户对邮件的行为和反馈。 PHP邮件追踪功能:了解用户对邮件的行为和反馈。 Sep 19, 2023 am 08:51 AM

PHP邮件追踪功能:了解用户对邮件的行为和反馈在现代社会中,电子邮件已经成为人们日常生活和工作中必不可少的一部分。对于企业来说,发送邮件是与客户进行沟通、推广产品或服务的重要方式之一。然而,一封邮件被发送出去后,我们如何知道它是否被收到、被读取,或者用户对邮件内容有何反应?这时,邮件追踪功能就显得尤为重要了。邮件追踪功能可以帮助我们了解用户对邮件的行为和反馈

WhatsApp技巧:发送高清照片和视频的方法 WhatsApp技巧:发送高清照片和视频的方法 Sep 10, 2023 am 10:13 AM

WhatsApp推出了一个新选项,允许用户通过消息传递平台以高分辨率发送照片和视频。继续阅读以了解它是如何完成的。WhatsApp发布了一个更新,允许iPhone和Android用户以高分辨率发送照片和视频,最终解决了该服务的低质量媒体共享限制。该选项称为“高清质量”,意味着用户可以以最小的压缩发送更清晰的照片和视频。例如,在iPhone上捕获的图像现在可以以3024x4032分辨率发送,而不是以前的最大920x1280分辨率,而视频可以以1280×718分辨率发送,而不是848×476分辨率。

See all articles