phpmail的使用

在一些活动的表单提交过程中我们可能需要提交一些信息并邮件到相应的服务器平台,对于在pc端的前端提交一般我们使用mailto属性,简洁适应,但是在移动端可能存在微信里面不支持mailto属性的问题,所以一般改在后台发送邮件到企业邮箱服务器里面。
1.在前端发送邮件:

url = "mailto:rsvp<[url=mailto:[email protected]][email protected][/url]>[email protected]&subject=港股盛世投資峰會在線報名&"; url += "body=" + "姓名: " + _name + "<br>" +     "公司或機構名稱:" + _company + "<br>" +     "您的職位:" + _job + "<br>" +     "手機:" + _phone + "<br>" +     "Emali:" + _email + "<br>" +     "微信(如有):" + _weixin; url = encodeURI(url); window.location.href = url;

  2.后台php发送邮件:
这里需要引用php自带的一个邮件类:phpmail

/*  *  活动栏目页,报名参加,发送邮件接口  */public function applyevent() {     $name = $this->input->post_get(‘name‘);     $company = $this->input->post_get(‘company‘);     $job = $this->input->post_get(‘job‘);     $phone = $this->input->post_get(‘phone‘);     $email = $this->input->post_get(‘email‘);     $weixin = $this->input->post_get(‘weixin‘);     if (! preg_match(‘/^([\x{4e00}-\x{9fa5}]|([a-zA-Z]+\s?)+){1,50}$/u‘,$name)){         $this->returnJson(array(‘flag‘ => ‘0‘, ‘msg‘ => ‘姓名不符合规范‘));     }     if (! preg_match(‘/^([\x{4e00}-\x{9fa5}]|([a-zA-Z]+\s?)+){1,100}$/u‘,$company)){         $this->returnJson(array(‘flag‘ => ‘0‘, ‘msg‘ => ‘公司不符合规范‘));     }     if (! preg_match(‘/^([\x{4e00}-\x{9fa5}]|([a-zA-Z]+\s?)+){1,50}$/u‘,$job)){         $this->returnJson(array(‘flag‘ => ‘0‘, ‘msg‘ => ‘职位不符合规范‘));     }     if ( preg_match(‘/^(1(([34578][0-9])|(47)|[8][0126789]))\d{8}$/u‘,$phone)){         //$phone = ‘0086‘.$phone;     } elseif ( preg_match(‘/^[1-9]\d{7}$/u‘,$phone)){         //$phone = ‘00852‘.$phone;     } else {         $this->returnJson(array(‘flag‘ => ‘0‘, ‘msg‘ => ‘手机不符合规范‘));     }     if (! preg_match(‘/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/u‘,$email)){         $this->returnJson(array(‘flag‘ => ‘0‘, ‘msg‘ => ‘邮箱不符合规范‘));     }      if ($weixin && !preg_match(‘/^[a-zA-Z0-9]{1,50}$/u‘,$weixin)) {         $this->returnJson(array(‘flag‘ => ‘0‘, ‘msg‘ => ‘微信号不符合规范‘));     }      //防刷3秒, 10次     //$this->_ajaxRequestCheck(strtolower(__FUNCTION__), 10, 3);      $info[‘subject‘] = ‘港股盛世投资峰会在线报名‘;     $info[‘content‘] = "姓 名 : $name <br>                         公 司 : $company <br>                         职 位 : $job <br>                         手 机 : $phone <br>                         邮 箱 : $email <br>                         微 信 : $weixin";     $info[‘from‘] = ‘香港站活动栏目后台‘;     $info[‘mailto‘] = "[email protected],[url=mailto:[email protected]][email protected][/url]";     //$info[‘mailto‘] = "[email protected],[url=mailto:liu[email protected]][email protected][/url],[url=mailto:[email protected]][email protected][/url]";     if (send_mail($info)) {         $this->returnJson(array(‘flag‘ => ‘1‘, ‘msg‘ => ‘发送成功‘));     } else {         $this->returnJson(array(‘flag‘ => ‘0‘, ‘msg‘ => ‘发送失败‘));     } } 

引入的phpmail这个类:

class CI_Sendmail {           public function send($info, $action=‘post‘) {         $url     = ‘http://mail.api.cnfol.net/index.php‘;         $ydUrl     = ‘http://mail.api.cnfol.net/index_yd.php‘;         $key     = ‘da2f00b38ed9273b974f254b7ba27571‘;         $emails  = $info[‘mailto‘];//用户邮件地址         $subject = trim($info[‘subject‘]);//邮件标题         $content = trim($info[‘content‘]);//邮件内容         $charset = (isset($info[‘charset‘]) && $info[‘charset‘]) ? $info[‘charset‘] : ‘utf8‘;//编码         $from    = (isset($info[‘from‘]) && $info[‘from‘]) ? $info[‘from‘] : ‘passport‘;//来源系统         $isyd    = (isset($info[‘isyd‘]) && $info[‘isyd‘]) ? 1 : 0; //是否异地登录                   if($subject<>‘‘ && $content<>‘‘) {             $emails = str_replace(‘,‘, ‘,‘, $emails);//全角转半角             $emails = explode(‘,‘, $emails);             $emailto = ‘‘;             foreach($emails as $v) {                 if(!empty($v) && preg_match(‘/^[\w\-\.]+\@[\w\-\.]+[A-Za-z]{2,}$/‘, $v)) {                     $emailto .= trim($v).‘,‘;                 } else {                     @error_log(date(‘H:i:s‘).PHP_EOL.__FILE__.‘//‘.__LINE__.PHP_EOL.‘发送邮件,邮箱:‘.$v.‘格式不符合要求‘.PHP_EOL, 3, LOG_PATH . ‘/sendmail‘.date(‘Ymd‘).‘.log‘);                 }             }             $emailto = substr($emailto, 0, -1);                           if($emailto<>‘‘) {                                   $info[‘key‘]      = $key;                 $info[‘content‘]  = $content;                 $info[‘mailto‘]   = $emailto;                 $info[‘subject‘]  = $subject;                 $info[‘Original‘] = $from;                 $info[‘charset‘]  = $charset;                 $info[‘smtpID‘]   = rand(24,26);                    $sendUrl = $isyd ? $ydUrl : $url;                 $result = curl_post($sendUrl, $info);                 @error_log(date(‘H:i:s‘). ‘|sendUrl|‘ . $sendUrl . PHP_EOL . ‘|info|‘. print_r($info, true). PHP_EOL . ‘|rs|‘ . print_r($result,true) . PHP_EOL, 3, LOG_PATH . ‘/sendmail‘.date(‘Ymd‘).‘.log‘);                                                     if($result == ‘errid=0&msg=发送成功‘) {                     return true;                 }                 else                {                     return false;                 }             }         }         else        {             return false;         }     }                     }// END Sendmail Class

在前端页面html页面的处理:

_sendMail({             name: _name,             company: _company,             job: _job,             phone: _phone,             email: _email,             weixin: _weixin         });     }     var _sendMail = function (info) {         var mailto = "http://logon.cnfol.hk/mail/applyevent";         $.ajax({             url: mailto,             type: "POST",             data: {                 name: info.name,                 company: info.company,                 job: info.job,                 phone: info.phone,                 email: info.email,                 weixin: info.weixin             },             dataType: "jsonp",             jsonp: ‘callback‘,             beforeSend:function () {                 $(‘.mailto‘).attr(‘onclick‘,‘javascript:void();‘);             },             success: function (data) {                 if (data.flag == 1) {                     alert(‘发送成功‘);                     $(‘form‘)[0].reset();                     $(‘.mailto‘).attr(‘onclick‘,"javascript:alert(‘您已成功参与本次报名!‘);");                 } else {                     alert(data.msg);                     $(‘.mailto‘).attr(‘onclick‘,‘sendMail()‘);                 }             },             error: function (data) {                 alert(‘短信发送出现故障‘);                 $(‘.mailto‘).attr(‘onclick‘,‘sendMail()‘);             }         });     } 
时间: 2024-10-11 07:21:05

phpmail的使用的相关文章

FastAdmin 使用 phpmail 出现 spl_autoload_register 错误

FastAdmin 使用 phpmail 出现 spl_autoload_register 错误 现象 意思是 __autoload() 已经废弃 问题来源于:https://ask.fastadmin.net/question/15169.html https://www.cnblogs.com/F4NNIU/p/11675489.html 原文地址:https://www.cnblogs.com/F4NNIU/p/11675489.html

三个月-见识菜鸟的每天的成长(js正則表達式&amp;amp;&amp;amp;phpmail的收发)

今天写了一段JS验证.就是涉及一个数据的合法性验证. 就是核心就是正則表達式.其它都是细节的东西,可是细节的东西非常重要. 今天犯了一个特么2B的错误,在js的function函数里面,alert字符的时候.用的双引號.导致程序跑步起来出错. 整整困扰了自己一个上午.才发现原来是这个小细节没有注意.总而言之.还是自己实力不济.得提高. 以下普及一下正則表達式跟JS基本的语法规则. 首先正則表達式,依据2/8定理,百分之二十的表达式是在百分之八十中用到的,其它的不用管. 略微了解一下即可. 最重要

php phpmail发送邮件的效果

方法一: /* * 发送邮件 原 smtp_mail * @param $emailAddress * @param $emailTitle 标题主题 * @param $emailContent 邮件内容 * @param $type 类型 * @return bollean */ public function smtpMail($emailAddress,$emailTitle,$emailContent,$type='html'){ //导入类 Yii::import('ext.comm

三个月-见识菜鸟的每天的成长(js正则表达式&amp;&amp;phpmail的收发)

今天写了一段JS验证,就是涉及一个数据的合法性验证.就是核心就是正则表达式.其他都是细节的东西,但是细节的东西很重要.今天犯了一个特么2B的错误,在js的function函数里面,alert字符的时候,用的双引号,导致程序跑步起来出错.整整困扰了自己一个上午,才发现原来是这个小细节没有注意,总而言之,还是自己实力不济.得提高.下面普及一下正则表达式跟JS基本语法规则. 首先正则表达式,根据2/8定理,百分之二十的表达式是在百分之八十中用到的,其他的不用管.稍微了解一下就行. 最重要的几个匹配项,

PHPMail 发邮件(网站找回密码模块开发)

1.用户验证 验证用户名是否是已注册会员.一般用ajax验证数据库User表. ajax代码如下: $('[name=cpname]').blur(function(){ var re = /^\w{6,12}$/; if(re.test($(this).val())){ //ajax连接数据库验证 $.ajax({ url:'Cp/check_cpname/cpname/'+$('[name=cpname]').val(), type:'get', success:function($msg)

ThinkPHP 3.2.3 使用 Swift Mailer 邮件系统发送邮件

SwiftMailer 下载地址:https://github.com/swiftmailer/swiftmailer 版本:swiftmailer-5.x 把压缩包解压到 /ThinkPHP/Library/Vendor 中. 配置文件 config.php <?php return array( //'配置项'=>'配置值' // 邮件配置 'SMTP' => 'smtp.XXX.cn', 'MAIL_PORT' => 25, 'MAIL_USER' => '[email

ThinkPHP中邮件发送功能

初次使用thinkphp框架,开发一个邮件发送功能,由于对框架不熟悉折腾了几个小时终于成功了,以下是代码记录. 此函数只能在ThinkPHP中使用且需要phpmailer扩展的支持:phpmail的下载地址:https://code.google.com/a/apache-extras.org/p/phpmailer 将phpmailer解压后放置扩展放置到第三方类库扩展目录下: ThinkPHP/Extend/Vendor/文件夹下即可,并使用vendor方法来导入.更详细介绍参考:http:

阿里云服务器不能发邮件,禁用25端口的解决办法

前阵子刚刚买了个阿里云服务器,在做发送邮件功能时,发现本来在本地测试没问题的功能,在服务器上连接超时. 后来发现是阿里云将25端口禁用了("坑!当然也有其道理"),大概2016年9月后买的服务器都被禁用.25禁用了,我们就不用它.以163邮箱为例: 网易163免费邮箱相关服务器信息: 我这里用的就是SSL协议端口465,代码如下 <?phpheader("content-type:text/html;charset=utf-8");include("

ThinkPHP中使用PHPMailer邮件类

第一步.添加PHPMailer类库将下载后的文件解压,将PHPMail目录移动至ThinkPHP目录中的Vendor内.(请确保class.phpmailer.php文件就在ThinkPHP\Vendor\PHPMailer\class.phpmailer.php)第二步.添加发送邮件函数在项目目录中的Common文件夹中的common.php文件(如果没有请创建)添加如下代码: <?php /********** * 发送邮件 * **********/ function SendMail($