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即可实现邮件反馈系统相关推荐

  1. 网页添加Live 2D看板娘超简单教程——伸手即可带走

    什么是看板娘?移目至左下角,这就是看板娘! 什么?没出来?鼠标放上去只有文字?那是因为源代码放在GitHub上,GitHub国外的网站,国内加载的慢啊,稍稍等一下啦,客官也可以亲自去GitHub拉源代 ...

  2. 往邮箱里发python怎么发_Python 超简单的邮件发送方法

    在训练网络模型的时候,往往需要好几个小时,甚至十几个小时,由于时间不固定,所以有时候我去查看了好几次都没训练完,有时候训练结束很久了我才想起去看,所以我就想训练结束后自动给我发个邮件,这样我就可以专心 ...

  3. 如何在CSDN上发gif - 超简单版本

    需要的软件,非常小,无须担心 链接:https://pan.baidu.com/s/1x0e4Mu-pLQ3jtuaqxBanqQ 提取码:1234 复制这段内容后打开百度网盘手机App,操作更方便哦 ...

  4. php发送邮件smtp源码,php下使用SMTP发邮件的代码

    首页 > 网络编程 > PHP编程 > php技巧 > php下使用SMTP发邮件的代码 php下使用SMTP发邮件的代码 2008-01-10 20:37:22 作者: ph ...

  5. CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决

    其实错误原因并不是因为此错误,经检测,邮件服务器返回的真实错误是 501 mail from address must be same as authorization user .只因为同时返回了  ...

  6. C语言实现SMTP发邮件

    文章目录 前言 SMTP SMTP模型 SMTP事务 SMTP命令 命令的返回值 纯手动发送Email 开启邮箱smtp服务 使用telnet连接登录smtp 开始邮件事务 C代码实现SMTP发送邮件 ...

  7. 配置GitLab 用smtp发邮件 (gitlab-6.7.3)

    原 配置GitLab 用smtp发邮件 (gitlab-6.7.3) 摘要 先编辑 config/environments/production.rb 再编辑 config/initializers/ ...

  8. 超简单的内网邮件服务器搭建(CentOS7 postfix+dovecot)

    为什么说是超简单呢,因为在这之前肯定查看教程看大佬们是怎样搭建的,于是我开始各种查阅,大佬们一般上来先讲原理,解释各种名词(我至今还没记清),然后准备前菜域名解析,我弄了好几天的域名解析但最终还是以失 ...

  9. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

最新文章

  1. 阿里巴巴Web前端面试的一道JS题目,求解答!!!
  2. ajax请求必须打断点才能成功,Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)...
  3. nginx之静态资源访问和负载均衡的使用!
  4. 代理服务器之正向代理和反向代理
  5. mysql中怎么实现Apriori_关联规则算法Apriori的学习与实现
  6. docker hub加速访问hub.docker.com
  7. 学习HttpClient,从两个小例子开始
  8. 从yield关键字看IEnumerable和Collection的区别
  9. redis/memcache监控管理工具——treeNMS
  10. target is null for setProperty(null,)错误的引发原因及解决办法
  11. 使用C#或C++语言实现微信自动加好友的功能(附接口SDK及源码)
  12. JSP中访问本地图片
  13. 粉屏门又一次显示出了苹果的傲慢
  14. redis数据类型有哪些
  15. 河南单招计算机分数线,2019年河南单招分数线一般多少分
  16. html搜索框下拉怎么做,一步一步教你实现仿百度搜索框下拉效果(上)
  17. docker:报错docker: Error response from daemon: Mounts denied:
  18. mac备份_备份Mac的最佳方法
  19. Ettercap嗅探室友浏览的图片和账号密码
  20. OkHttp(二)—— 拦截器

热门文章

  1. 2022下半年软件设计师中级考试通过
  2. python需要cpu还是显卡问题_买新电脑是cpu重要还是显卡重要?该怎么选择?
  3. 2023年长安大学油气田地质与开发考研上岸前辈备考经验
  4. php 监听redis,php监听redis key失效触发回调事件_后端开发
  5. Linux 学习之路-------苦行,只为修得正果。每日三省吾身
  6. 自媒体短视频怎么玩?0粉丝也可以变现,5种变现模式
  7. 剑指offer----C语言版----第十一天
  8. Excel表列名称(4)
  9. python爬取酷狗音乐url_python-从酷狗下载爬取自己想要的音乐-可以直接拿来体验哟...
  10. 很多程序员编码时都戴耳机,到底在听什么?