PHP发送邮件SMTP发邮件,超简单引用,CtrlCV即可实现邮件反馈系统
feedback.php
<?php header("content-type:text/html;charset=utf-8"); //post接收前端发送的用户反馈的信息 if(isset($_POST["title"]) && isset($_POST["text"])) {$title = $_POST["title"];//邮件标题$text = $_POST["text"];//邮件内容//(收件人多个可逗号填多个,邮件标题,邮件内容)$admin1 = sendMail("1018827587@qq.com",$title,$text);echo $admin1; } else {echo -901; }//@param $to:接收者 $title:标题 $content:邮件内容 function sendMail($to,$title,$content) {require_once "Smtp.class.php";//引入发送库$smtpserver = "smtp.qq.com";//SMTP服务器$smtpserverport =25;//SMTP服务器端口$smtpusermail = "1018827587@163.com";//SMTP服务器的用户邮箱$smtpemailto = $to;//发送给谁$smtpuser = "1018827587@qq.com";//SMTP服务器的用户帐号$smtppass = "ML*************EK";//SMTP服务器的用户密码$mailtitle = $title;//邮件主题$mailcontent = $content;//邮件内容$mailtype = "TXT";//邮件格式(HTML/TXT),TXT为文本邮件$smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.$smtp->debug = false;//是否显示发送的调试信息$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);return $state;exit(); }
Smtp.class.php (不需要你懂,把下面的复制粘贴引用就行)
<?phpclass Smtp {/* Public Variables */public $smtp_port;public $time_out;public $host_name;public $log_file;public $relay_host;public $debug;public $auth;public $user;public $pass;/* Private Variables */private $sock;/* Constractor */function __construct($relay_host = "", $smtp_port = 25,$auth = false,$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 = "";$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 = preg_replace("/(^|(\r\n))(\.)/", "\1.\3", $body);$header = "MIME-Version:1.0\r\n";if($mailtype=="HTML"){$header .= "Content-Type:text/html\r\n";}$header .= "To: ".$to."\r\n";if ($cc != "") {$header .= "Cc: ".$cc."\r\n";}$header .= "From: $from<".$from.">\r\n";$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;}/* Private Functions */function smtp_send($helo, $from, $to, $header, $body = ""){if (!$this->smtp_putcmd("HELO", $helo)) {return $this->smtp_error("sending HELO command");}//authif($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 = preg_replace("/^.+@([^@]+)$/", "\1", $address);if (!@getmxrr($domain, $MXHOSTS)) {$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n");return FALSE;}//专注与php学习 http://www.daixiaorui.com 欢迎您的访问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 (!preg_match("/^[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 (preg_match($comment, $address)) {$address = preg_replace($comment, "", $address);}return $address;}function get_address($address){$address = preg_replace("/([ \t\r\n])+/", "", $address);$address = preg_replace("/^.*<(.+)>.*$/", "\1", $address);return $address;}function smtp_debug($message){if ($this->debug) {echo $message;}}}
PHP发送邮件SMTP发邮件,超简单引用,CtrlCV即可实现邮件反馈系统相关推荐
- 网页添加Live 2D看板娘超简单教程——伸手即可带走
什么是看板娘?移目至左下角,这就是看板娘! 什么?没出来?鼠标放上去只有文字?那是因为源代码放在GitHub上,GitHub国外的网站,国内加载的慢啊,稍稍等一下啦,客官也可以亲自去GitHub拉源代 ...
- 往邮箱里发python怎么发_Python 超简单的邮件发送方法
在训练网络模型的时候,往往需要好几个小时,甚至十几个小时,由于时间不固定,所以有时候我去查看了好几次都没训练完,有时候训练结束很久了我才想起去看,所以我就想训练结束后自动给我发个邮件,这样我就可以专心 ...
- 如何在CSDN上发gif - 超简单版本
需要的软件,非常小,无须担心 链接:https://pan.baidu.com/s/1x0e4Mu-pLQ3jtuaqxBanqQ 提取码:1234 复制这段内容后打开百度网盘手机App,操作更方便哦 ...
- php发送邮件smtp源码,php下使用SMTP发邮件的代码
首页 > 网络编程 > PHP编程 > php技巧 > php下使用SMTP发邮件的代码 php下使用SMTP发邮件的代码 2008-01-10 20:37:22 作者: ph ...
- CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决
其实错误原因并不是因为此错误,经检测,邮件服务器返回的真实错误是 501 mail from address must be same as authorization user .只因为同时返回了 ...
- C语言实现SMTP发邮件
文章目录 前言 SMTP SMTP模型 SMTP事务 SMTP命令 命令的返回值 纯手动发送Email 开启邮箱smtp服务 使用telnet连接登录smtp 开始邮件事务 C代码实现SMTP发送邮件 ...
- 配置GitLab 用smtp发邮件 (gitlab-6.7.3)
原 配置GitLab 用smtp发邮件 (gitlab-6.7.3) 摘要 先编辑 config/environments/production.rb 再编辑 config/initializers/ ...
- 超简单的内网邮件服务器搭建(CentOS7 postfix+dovecot)
为什么说是超简单呢,因为在这之前肯定查看教程看大佬们是怎样搭建的,于是我开始各种查阅,大佬们一般上来先讲原理,解释各种名词(我至今还没记清),然后准备前菜域名解析,我弄了好几天的域名解析但最终还是以失 ...
- 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)
[微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...
最新文章
- 阿里巴巴Web前端面试的一道JS题目,求解答!!!
- ajax请求必须打断点才能成功,Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)...
- nginx之静态资源访问和负载均衡的使用!
- 代理服务器之正向代理和反向代理
- mysql中怎么实现Apriori_关联规则算法Apriori的学习与实现
- docker hub加速访问hub.docker.com
- 学习HttpClient,从两个小例子开始
- 从yield关键字看IEnumerable和Collection的区别
- redis/memcache监控管理工具——treeNMS
- target is null for setProperty(null,)错误的引发原因及解决办法
- 使用C#或C++语言实现微信自动加好友的功能(附接口SDK及源码)
- JSP中访问本地图片
- 粉屏门又一次显示出了苹果的傲慢
- redis数据类型有哪些
- 河南单招计算机分数线,2019年河南单招分数线一般多少分
- html搜索框下拉怎么做,一步一步教你实现仿百度搜索框下拉效果(上)
- docker:报错docker: Error response from daemon: Mounts denied:
- mac备份_备份Mac的最佳方法
- Ettercap嗅探室友浏览的图片和账号密码
- OkHttp(二)—— 拦截器
热门文章
- 2022下半年软件设计师中级考试通过
- python需要cpu还是显卡问题_买新电脑是cpu重要还是显卡重要?该怎么选择?
- 2023年长安大学油气田地质与开发考研上岸前辈备考经验
- php 监听redis,php监听redis key失效触发回调事件_后端开发
- Linux 学习之路-------苦行,只为修得正果。每日三省吾身
- 自媒体短视频怎么玩?0粉丝也可以变现,5种变现模式
- 剑指offer----C语言版----第十一天
- Excel表列名称(4)
- python爬取酷狗音乐url_python-从酷狗下载爬取自己想要的音乐-可以直接拿来体验哟...
- 很多程序员编码时都戴耳机,到底在听什么?