亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP實現發送郵件的方法(基于簡單郵件發送類)

2020-03-22 19:06:47
字體:
來源:轉載
供稿:網友
本文實例講述了PHP實現發送郵件的方法。分享給大家供大家參考,具體如下:郵件發送類 php /*郵件發送類 *功能:使用smtp服務器發送郵件 html' target='_blank'>class smtp { /* 全局變量 */ var $smtp_port; var $time_out; var $host_name; var $log_file; var $relay_host; var $debug; var $auth; var $user; var $pass; var $sock; /* 構造函數 */ function smtp($relay_host = "", $smtp_port = 25, $auth = false, $log_file="", $user="", $pass="") { $this- debug = FALSE; $this- smtp_port = $smtp_port; $this- relay_host = $relay_host; $this- time_out = 30; //is used in fsockopen() $this- auth = $auth; //auth $this- user = $user; $this- pass = $pass; $this- host_name = "localhost"; //is used in HELO command $this- log_file = $log_file; //郵件發送成功失敗的日志記錄文件 $this- sock = FALSE; function mail_encode($str) //return '= utf-8 B '.base64_encode(mb_convert_encoding($str, "GBK", "UTF-8")).' return "= UTF-8 B ".base64_encode($str)." /* 主函數,發送郵件 */ function sendmail($flag, $boundary, $to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "") { $mail_from = $this- get_address ( $this- strip_comment ( $from ) ); $body = ereg_replace ( '(^|(/r/n))(/.)', "/1./3", $body ); $header = "MIME-Version:1.0/r/n"; if ($mailtype == "HTML") { if ($flag == 2) { $header .= "Content-Type:multipart/mixed; boundary= $boundary/r/n"; } else { $header .= "Content-Type:text/html; charset=/"UTF-8/" /r/n"; $header .= "To: " . $to . "/r/n"; if ($cc != "") { $header .= "Cc: " . $cc . "/r/n"; $header .= "From: $from " . $from . " /r/n"; $subject = self::mail_encode($subject); $header .= "Subject: " . $subject . "/r/n"; $header .= $additional_headers; $header .= "Date: " . date ( "r" ) . "/r/n"; $header .= "X-Mailer:By redhat (PHP/" . phpversion () . ")/r/n"; list ( $msec, $sec ) = explode ( " ", microtime () ); $header .= "Message-ID: " . date ( "YmdHis", $sec ) . "." . ($msec * 1000000) . "." . $mail_from . " /r/n"; $TO = explode ( ",", $this- strip_comment ( $to ) ); if ($cc != "") { $TO = array_merge ( $TO, explode ( ",", $this- strip_comment ( $cc ) ) ); if ($bcc != "") { $TO = array_merge ( $TO, explode ( ",", $this- strip_comment ( $bcc ) ) ); $sent = TRUE; foreach ( $TO as $rcpt_to ) { $rcpt_to = $this- get_address ( $rcpt_to ); if (! $this- smtp_sockopen ( $rcpt_to )) { $this- log_write ( "Error: Cannot send email to " . $rcpt_to . "/n" ); $sent = FALSE; continue; if ($this- smtp_send ( $this- host_name, $mail_from, $rcpt_to, $header, $body )) { $this- log_write ( "E-mail has been sent to " . $rcpt_to . " /n" ); } else { $this- log_write ( "Error: Cannot send email to " . $rcpt_to . " /n" ); $sent = FALSE; fclose ( $this- sock ); $this- log_write ( "Disconnected from remote host/n" ); return $sent; /* 私有函數 */ function smtp_send($helo, $from, $to, $header, $body = "") { if (! $this- smtp_putcmd ( "HELO", $helo )) { return $this- smtp_error ( "sending HELO command" ); if ($this- auth) { if (! $this- smtp_putcmd ( "AUTH LOGIN", base64_encode ( $this- user ) )) { return $this- smtp_error ( "sending HELO command" ); if (! $this- smtp_putcmd ( "", base64_encode ( $this- pass ) )) { return $this- smtp_error ( "sending HELO command" ); if (! $this- smtp_putcmd ( "MAIL", "FROM: " . $from . " " )) { return $this- smtp_error ( "sending MAIL FROM command" ); if (! $this- smtp_putcmd ( "RCPT", "TO: " . $to . " " )) { return $this- smtp_error ( "sending RCPT TO command" ); if (! $this- smtp_putcmd ( "DATA" )) { return $this- smtp_error ( "sending DATA command" ); if (! $this- smtp_message ( $header, $body )) { return $this- smtp_error ( "sending message" ); if (! $this- smtp_eom ()) { return $this- smtp_error ( "sending CR LF . CR LF [EOM]" ); if (! $this- smtp_putcmd ( "QUIT" )) { return $this- smtp_error ( "sending QUIT command" ); return TRUE; function smtp_sockopen($address) { if ($this- relay_host == "") { return $this- smtp_sockopen_mx ( $address ); } else { return $this- smtp_sockopen_relay (); function smtp_sockopen_relay() { $this- log_write ( "Trying to " . $this- relay_host . ":" . $this- smtp_port . "/n" ); $this- sock = @fsockopen ( $this- relay_host, $this- smtp_port, $errno, $errstr, $this- time_out ); if (! ($this- sock && $this- smtp_ok ())) { $this- log_write ( "Error: Cannot connenct to relay host " . $this- relay_host . "/n" ); $this- log_write ( "Error: " . $errstr . " (" . $errno . ")/n" ); return FALSE; $this- log_write ( "Connected to relay host " . $this- relay_host . "/n" ); return TRUE; function smtp_sockopen_mx($address) { $domain = ereg_replace ( "^.+@([^@]+){1}quot;, "/1", $address ); if (! @getmxrr ( $domain, $MXHOSTS )) { $this- log_write ( "Error: Cannot resolve MX /"" . $domain . "/"/n" ); return FALSE; foreach ( $MXHOSTS as $host ) { $this- log_write ( "Trying to " . $host . ":" . $this- smtp_port . "/n" ); $this- sock = @fsockopen ( $host, $this- smtp_port, $errno, $errstr, $this- time_out ); if (! ($this- sock && $this- smtp_ok ())) { $this- log_write ( "Warning: Cannot connect to mx host " . $host . "/n" ); $this- log_write ( "Error: " . $errstr . " (" . $errno . ")/n" ); continue; $this- log_write ( "Connected to mx host " . $host . "/n" ); return TRUE; $this- log_write ( "Error: Cannot connect to any mx hosts (" . implode ( ", ", $MXHOSTS ) . ")/n" ); return FALSE; function smtp_message($header, $body) { fputs ( $this- sock, $header . "/r/n" . $body ); $this- smtp_debug ( " " . str_replace ( "/r/n", "/n" . " ", $header . "/n " . $body . "/n " ) ); return TRUE; function smtp_eom() { fputs ( $this- sock, "/r/n./r/n" ); $this- smtp_debug ( ". [EOM]/n" ); return $this- smtp_ok (); function smtp_ok() { $response = str_replace ( "/r/n", "", fgets ( $this- sock, 512 ) ); $this- smtp_debug ( $response . "/n" ); if (! ereg ( "^[23]", $response )) { fputs ( $this- sock, "QUIT/r/n" ); fgets ( $this- sock, 512 ); $this- log_write ( "Error: Remote host returned /"" . $response . "/"/n" ); return FALSE; return TRUE; function smtp_putcmd($cmd, $arg = "") { if ($arg != "") { if ($cmd == "") $cmd = $arg; else $cmd = $cmd . " " . $arg; fputs ( $this- sock, $cmd . "/r/n" ); $this- smtp_debug ( " " . $cmd . "/n" ); return $this- smtp_ok (); function smtp_error($string) { $this- log_write ( "Error: Error occurred while " . $string . "./n" ); return FALSE; function log_write($message) { $this- smtp_debug ( $message ); if ($this- log_file == "") { return TRUE; $message = date ( "M d H:i:s " ) . get_current_user () . "[" . getmypid () . "]: " . $message; if (! @file_exists ( $this- log_file ) || ! ($fp = @fopen ( $this- log_file, "a" ))) { $this- smtp_debug ( "Warning: Cannot open log file /"" . $this- log_file . "/"/n" ); return FALSE; flock ( $fp, LOCK_EX ); fputs ( $fp, $message ); fclose ( $fp ); return TRUE; function strip_comment($address) { $comment = '[()] '; while ( ereg ( $comment, $address ) ) { $address = ereg_replace ( $comment, "", $address ); return $address; function get_address($address) { $address = ereg_replace ( "([ /t/r/n])+", "", $address ); $address = ereg_replace ( "^.* (.+) .*{1}quot;, "/1", $address ); return $address; function smtp_debug($message) { if ($this- debug) { echo $message;
date_default_timezone_set ( 'Asia/Shanghai' ); $subject = date ( "Y-m-d" ) . "郵件標題"; //郵件標題 $content = "郵件內容!"; //郵件內容 //$file = "/a/b/c.txt"; //附件 //$fileName = "email_log.log"; //附件名稱 $smtpserver = "服務器ip"; //SMTP服務器 $smtpserverport = 25; //SMTP服務器端口 $bcc = ""; //副收件人 //$smtpuser = ""; //SMTP服務器的用戶帳號 //$smtppass = ""; //SMTP服務器的用戶密碼 $smtpmailfrom = "aaa@bbb.com"; //SMTP服務器的用戶郵箱,郵件發送者 $smtpemailto = "郵箱1,郵箱2,郵箱3"; //郵件接受者 $cc = ""; //抄送 $mailsubject = $subject; //郵件主題 $mailtype = "HTML"; //郵件格式(HTML/TXT),TXT為文本郵件 $additional_headers = ""; $smtplogfile = ""; //發送郵件的日志文件,如果沒有就不記錄 // 定義分界線 $boundary = uniqid ( "" ); $headers = "Content-type: multipart/mixed; boundary= $boundary/r/n"; //附件類型 $mimeType = "application/unknown"; // 打開文件 $fp = fopen ( $file, "r" ); // 把整個文件讀入一個變量 $read = fread ( $fp, filesize ( $file ) ); //我們用base64方法把它編碼 $read = base64_encode ( $read ); //把這個長字符串切成由每行76個字符組成的小塊 $read = chunk_split ( $read ); fclose ( $fp ); //關閉文件 /* 郵件發送代碼 */ $flag = 1; //判斷使用什么樣的文件頭1或2 if ($fileName == "") { //沒有附件 $body = $content; } else { //有附件 $flag = 2; if ($mailtype == "HTML") { $body = "--$boundary/r/n"; //此必須/r/n $body .= "Content-Type:text/html/r/n/r/n"; //此必須/r/n/r/n $body .= "$content/r/n"; $body .= "--$boundary/r/n"; $body .= "Content-type: $mimeType; name=$fileName/r/n"; $body .= "Content-disposition: attachment; filename=$fileName/r/n"; $body .= "Content-Transfer-Encoding: BASE64/r/n/r/n"; $body .= "$read/r/n/r/n"; $body .= "--$boundary--/r/n"; } else { $body = "--$boundary/r/n"; $body .= "Content-type: Content-type: text/plain; charset=iso-8859-1/r/n/r/n"; $body .= "Content-transfer-encoding: 8bit/r/n/r/n"; $body .= "$content/r/n/r/n"; $body .= "--$boundary/r/n"; $body .= "Content-type: $mimeType; name=$fileName/r/n/r/n"; $body .= "Content-disposition: attachment; filename=$fileName/r/n/r/n"; $body .= "Content-transfer-encoding: base64/r/n/r/n"; $body .= "$read/r/n/r/n"; $body .= "--$boundary--/r/n"; $mailbody = $body; //郵件內容 //這里面的一個true是表示使用身份驗證,否則不使用身份驗證. $smtp = new smtp ( $smtpserver, $smtpserverport, false, $smtplogfile ); //$smtp- debug = TRUE;//是否顯示發送的調試信息 if ($smtp- sendmail ( $flag, $boundary, $smtpemailto, $smtpmailfrom, $mailsubject, $mailbody, $mailtype, $cc, $bcc, $additional_headers )) { echo ("發送成功"); } else { echo ("發送失敗");

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美福利小视频| 欧美激情按摩在线| 亚洲精品视频二区| 欧美性猛交xxxxx水多| 亚洲成av人乱码色午夜| 国产亚洲精品成人av久久ww| 91av视频在线| 久久色精品视频| 亚州av一区二区| 久久久精品免费| 久久精品视频亚洲| 亚洲图片欧美午夜| 97人洗澡人人免费公开视频碰碰碰| 欧美做受高潮电影o| 欧美国产视频一区二区| 亚洲成人动漫在线播放| 欧美黑人巨大xxx极品| 日韩电影中文字幕一区| 91精品91久久久久久| 国产精品视频公开费视频| 国产亚洲a∨片在线观看| 琪琪亚洲精品午夜在线| 激情亚洲一区二区三区四区| 国产精品久久久久久久久久| 日韩电影免费在线观看中文字幕| 国产日韩欧美夫妻视频在线观看| 日日狠狠久久偷偷四色综合免费| 久久成人精品电影| 亚洲欧洲第一视频| 精品久久久一区| 久久777国产线看观看精品| 久青草国产97香蕉在线视频| 午夜精品久久久久久久久久久久| 欧美日韩国产成人在线观看| 国产精品成人va在线观看| 欧美日韩亚洲激情| 日韩麻豆第一页| 国产一区二区在线播放| 欧美香蕉大胸在线视频观看| 亚洲一区二区黄| 日本精品久久中文字幕佐佐木| 成人做爽爽免费视频| 欧美精品videosex极品1| 91精品成人久久| 视频在线观看一区二区| 国产精品第一视频| 成人www视频在线观看| 午夜精品理论片| 尤物九九久久国产精品的分类| 九九热这里只有精品免费看| 亚洲老头老太hd| 成人欧美一区二区三区在线湿哒哒| 国产成人精品免费久久久久| 精品二区三区线观看| 国产v综合v亚洲欧美久久| 欧美在线观看www| 久久午夜a级毛片| 色老头一区二区三区在线观看| 亚洲国产精品va| 国产精品吹潮在线观看| 欧美有码在线观看| 国产视频精品免费播放| 日韩免费看的电影电视剧大全| 亚洲高清一二三区| 91久久久久久久久久久久久| 黄色成人av在线| 成人a免费视频| 亚洲日本中文字幕免费在线不卡| 亚洲国产成人爱av在线播放| 亚洲国产毛片完整版| 91国产精品视频在线| 中文字幕亚洲色图| 97精品免费视频| 久久久精品影院| 国产视频在线一区二区| 亚洲香蕉伊综合在人在线视看| 青草青草久热精品视频在线观看| 麻豆成人在线看| 国产成人精品国内自产拍免费看| 国产精品视频xxx| 97成人精品视频在线观看| 欧美限制级电影在线观看| 欧美在线一区二区三区四| 日韩在线观看高清| 国产一区私人高清影院| 亚洲va欧美va国产综合久久| 亚洲视频axxx| 欧美日韩午夜视频在线观看| 日韩黄色av网站| 久久精品国产亚洲精品| 欧美成人三级视频网站| 在线观看日韩www视频免费| 日韩高清电影免费观看完整版| 精品福利一区二区| 国产色视频一区| 亚洲精品久久久一区二区三区| 亚洲第一中文字幕| 亚洲成av人片在线观看香蕉| 亚洲成**性毛茸茸| 欧美精品少妇videofree| 正在播放国产一区| 久久久久久久久久久免费| 精品久久久久久久久久ntr影视| 北条麻妃久久精品| 北条麻妃一区二区在线观看| 少妇高潮久久久久久潘金莲| 在线观看日韩专区| 亚洲成人av中文字幕| 久久久久久久一区二区三区| 91久久久久久国产精品| 91精品久久久久久久久久另类| www.亚洲成人| 欧美xxxx做受欧美.88| 不卡伊人av在线播放| 日本一本a高清免费不卡| 亚洲精品国精品久久99热| 亚洲一区亚洲二区亚洲三区| 久久久国产一区二区三区| 91免费在线视频| 日韩免费精品视频| 久久久久久久久久久人体| 在线精品国产成人综合| 久久久精品在线| 丝袜美腿亚洲一区二区| 国产专区欧美专区| 亚洲少妇中文在线| 欧美日韩裸体免费视频| 精品久久久香蕉免费精品视频| 国产精品久久久久77777| 亚洲精品国产精品自产a区红杏吧| 国产一区二区三区直播精品电影| 伊人久久精品视频| 欧美日韩另类字幕中文| 97人洗澡人人免费公开视频碰碰碰| 久久影视电视剧免费网站清宫辞电视| 亚洲激情中文字幕| 久久av中文字幕| 91久久久久久久久久| 成人性生交xxxxx网站| www.久久久久| 高清一区二区三区日本久| 久久天天躁狠狠躁老女人| 丝袜亚洲另类欧美重口| 亚洲国产精品福利| 国产日韩欧美在线播放| 亚洲欧美日本精品| 久久精品免费电影| 在线观看久久av| 中文字幕日韩av综合精品| 日韩av色综合| 91精品国产高清自在线| 一区二区日韩精品| 亚洲在线第一页| 亚洲嫩模很污视频| 亚洲国产精品成人va在线观看| 欧美日韩国产丝袜美女| 欧美网站在线观看| 国内精品小视频在线观看| 97福利一区二区| 日韩国产高清视频在线| 久久国产加勒比精品无码| 日韩最新中文字幕电影免费看| 国产主播在线一区| 久久色免费在线视频|