摘要:郵件服務器使用的是郵箱的需要去郵箱申請郵箱和設置客戶端授權密碼。嘗試發郵件試試成功不會進入垃圾箱作者網站學習交流微信
郵件服務器使用的是163郵箱的
需要去163郵箱申請郵箱和設置客戶端授權密碼。
登錄163郵箱->設置->POP3/SMTP/IMAP->客戶端授權密碼
圖片演示設置好要記住!
下面就是代碼了
表單index.html
????提交表單 發送郵件處理PHP發郵件 - BY TANKING ????????PHP發郵件-BY TANKING
????
mail.php
".$content.""; ? ????//開始發送郵件 ????$smtp->sendmail($smtpemailto, $smtpemailfrom, $emailsubject, $emailbody, $emailtype); ????echo "發送成功!"; ?>
mail.php
里面只需設置你的163賬號和授權密碼即可
還有一個文件
smtp.class.php
這個不要動就行,拷貝到同一目錄。
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 = ""; ????????$this->sock = false; ????} ????/* Main Function */ ????function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "") { ????????$mail_from = $this->get_address($this->strip_comment($from)); ????????$body = ereg_replace("(^|( ))(.)", "1.3", $body); ????????$header.= "MIME-Version:1.0 "; ????????if ($mailtype == "HTML") { ????????????$header.= "Content-Type:text/html "; ????????} ????????$header.= "To: " . $to . " "; ????????if ($cc != "") { ????????????$header.= "Cc: " . $cc . " "; ????????} ????????$header.= "From: $from<" . $from . "> "; ????????$header.= "Subject: " . $subject . " "; ????????$header.= $additional_headers; ????????$header.= "Date: " . date("r") . " "; ????????$header.= "X-Mailer:By Redhat (PHP/" . phpversion() . ") "; ????????list($msec, $sec) = explode(" ", microtime()); ????????$header.= "Message-ID: <" . date("YmdHis", $sec) . "." . ($msec * 1000000) . "." . $mail_from . "> "; ????????$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 . " "); ????????????????$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 . "> "); ????????????} else { ????????????????$this->log_write("Error: Cannot send email to <" . $rcpt_to . "> "); ????????????????$sent = false; ????????????} ????????????fclose($this->sock); ????????????$this->log_write("Disconnected from remote host "); ????????} ????????return $sent; ????} ????/* Private Functions */ ????function smtp_send($helo, $from, $to, $header, $body = "") { ????????if (!$this->smtp_putcmd("HELO", $helo)) { ????????????return $this->smtp_error("sending HELO command"); ????????} ????????// auth ????????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嘗試發郵件試試! 成功!不會進入垃圾箱!. [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 . " "); ????????$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 . " "); ????????????$this->log_write("Error: " . $errstr . " (" . $errno . ") "); ????????????return false; ????????} ????????$this->log_write("Connected to relay host " . $this->relay_host . " "); ????????return true;; ????} ????function smtp_sockopen_mx($address) { ????????$domain = ereg_replace("^.+@([^@]+)$", "1", $address); ????????if (!@getmxrr($domain, $MXHOSTS)) { ????????????$this->log_write("Error: Cannot resolve MX "" . $domain . "" "); ????????????return false; ????????} ????????foreach ($MXHOSTS as $host) { ????????????$this->log_write("Trying to " . $host . ":" . $this->smtp_port . " "); ????????????$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 . " "); ????????????????$this->log_write("Error: " . $errstr . " (" . $errno . ") "); ????????????????continue; ????????????} ????????????$this->log_write("Connected to mx host " . $host . " "); ????????????return true; ????????} ????????$this->log_write("Error: Cannot connect to any mx hosts (" . implode(", ", $MXHOSTS) . ") "); ????????return false; ????} ????function smtp_message($header, $body) { ????????fputs($this->sock, $header . " " . $body); ????????$this->smtp_debug("> " . str_replace(" ", " " . "> ", $header . " > " . $body . " > ")); ????????return true; ????} ????function smtp_eom() { ????????fputs($this->sock, " . "); ????????$this->smtp_debug(". [EOM] "); ????????return $this->smtp_ok(); ????} ????function smtp_ok() { ????????$response = str_replace(" ", "", fgets($this->sock, 512)); ????????$this->smtp_debug($response . " "); ????????if (!ereg("^[23]", $response)) { ????????????fputs($this->sock, "QUIT "); ????????????fgets($this->sock, 512); ????????????$this->log_write("Error: Remote host returned "" . $response . "" "); ????????????return false; ????????} ????????return true; ????} ????function smtp_putcmd($cmd, $arg = "") { ????????if ($arg != "") { ????????????if ($cmd == "") $cmd = $arg; ????????????else $cmd = $cmd . " " . $arg; ????????} ????????fputs($this->sock, $cmd . " "); ????????$this->smtp_debug("> " . $cmd . " "); ????????return $this->smtp_ok(); ????} ????function smtp_error($string) { ????????$this->log_write("Error: Error occurred while " . $string . ". "); ????????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 . "" "); ????????????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("([ ])+", "", $address); ????????$address = ereg_replace("^.*<(.+)>.*$", "1", $address); ????????return $address; ????} ????function smtp_debug($message) { ????????if ($this->debug) { ????????????echo $message . " ? ??????????????????????? ;"; ????????} ????} } ?>
作者:TANKING
2018-7-8
網站:likeyunba.com
學習交流微信:face6009
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28994.html
摘要:隨著云服務器的盛行,幾乎無法以指向本機的域名向外發送郵件,除了在本機內發送提醒郵件,用處已然不大。發送效率低非面向對象的調用方式,配置麻煩以及云服務器廠商的封鎖,是使用函數的最大阻礙。 轉載請注明文章出處: https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎 web請求 cookie web響應 session 數據庫操作 加解密 Co...
摘要:發件人是我的郵箱收件人是我的郵箱當我點擊發送的時候,我就會在我的郵箱的已發送列表看到一篇發送的郵件然后登陸郵箱就可以看到收件箱有一封剛剛發過來的郵件。 很多網站都開始有郵箱驗證碼驗證了。例如網站評論有人回復了,你就能立馬收到郵件。這些功能是如何實現的呢?其實就是用php實現的,當然這樣的類很多,我這里給大家分享的是phpmail 首先該文件有一個封裝類和一個配置 showImg(htt...
閱讀 1982·2019-08-30 15:54
閱讀 3532·2019-08-30 15:52
閱讀 1822·2019-08-29 17:20
閱讀 2514·2019-08-29 17:08
閱讀 2346·2019-08-26 13:24
閱讀 780·2019-08-26 11:59
閱讀 2780·2019-08-23 14:50
閱讀 611·2019-08-23 14:20