注册邮箱发送短信验证_网易邮箱注册系统未收到短信

注册邮箱发送短信验证_网易邮箱注册系统未收到短信分享概要:讲述yii框架,用户注册然后以邮箱通知和短信通知用户注册状态。短信使用阿里云,邮箱使用swiftmailer插件。支持php~~~功能点:用户注册通知用户注册类:publicfunctionactionCreateUsers(){//数据过滤数据判断这个省略了。。。。直接看重点if($model->save()){//对用户数据的保存…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

分享概要:讲述yii框架,用户注册然后以邮箱通知和短信通知用户注册状态。短信使用阿里云,邮箱使用swiftmailer插件。
支持php~~~
感觉博主写的不错,请小伙伴们转载和分享点赞哟!

功能点: 用户注册通知

用户注册类:

 public function actionCreateUsers(){
 //数据过滤 数据判断   这个省略了。。。。 直接看重点
 if($model->save()){ //对用户数据的保存
                $data = $model->attributes;//获取当前保存用户的全部信息
                $data['password_original'] =$password; //明文密码
                //发送邮件通知
                \common\utils\Tool::sendMail($model->email, '恭喜你在xxx系统注册成功。', $data, 'usersign') ;//p1 :用户邮箱 p2:通知信息标题 p3:用户数据 p4:通知信息模板
                //发送短信通知 阿里云
                SMsDemo::sendMsgOnRegister($model->mobile_phone,$model->real_name,
                        $model->user_name,$data['password_original']);
                
            } 
            return $this->redirect('/index');
 }

2.邮箱工具类:
先在config里的main.php添加组件:

'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',//使用swiftmailer扩展  优点不占用服务器资源内存
            'viewPath' => '@common/mail', //模板路径
            'useFileTransport' => false,//如果启用表示邮件发送到服务器并保存, 关闭时表示真实发送到用户邮箱。。。
            'transport' => [
                'class' => 'Swift_SmtpTransport',  
                'host' => 'smtp.exmail.qq.com', //QQ企业邮箱 SSL启用 端口:587/465 (其他邮箱配置请看下面提示:)
                'port' => 465,
                'encryption' => 'ssl',// (tls / ssl)根据情况选择符合你的
                //用户密码放在这里不太安全,可以放在数据库里然后去取
                'username' => 'yyy@xxx.com',//写自己的邮箱用户名
                'password' => 'zzzzz',//密码
            ],
            //发送的邮件信息配置
            'messageConfig' => [
                'charset' => 'utf-8',//编码
                'from' => ['support@mmcuav.com' => 'uuu'],//uuu修改成自己的签名 随意
            ],
        ],

提示:

126邮箱:
POP3服务器地址:pop.126.com(端口:110)
SMTP服务器地址:smtp.126.com(端口:25)

139邮箱:
POP3服务器地址:POP.139.com(端口:110)
SMTP服务器地址:SMTP.139.com(端口:25)

163.com:
POP3服务器地址:pop.163.com(端口:110)
SMTP服务器地址:smtp.163.com(端口:25)

QQ邮箱:
POP3服务器地址:pop.qq.com(端口:110)
SMTP服务器地址:smtp.qq.com(端口:25)

yahoo.com:
POP3服务器地址:pop.mail.yahoo.com
SMTP服务器地址:smtp.mail.yahoo.com

gmail(google.com)
POP3服务器地址:pop.gmail.com(SSL启用端口:995)
SMTP服务器地址:smtp.gmail.com(SSL启用 端口:587)

3.工具类

namespace common\utils;
use Yii;

class Tool {

    /** 
     * 邮件发送 
     * @param type $to  邮件接收人多个传数组
     * @param type $title   邮件标题
     * @param type $data 邮件内容(模板的时候最好使用数组)
     * @param type $template 邮件模板
     * @return int
     */
    static function sendMail($to, $title, $data,$template='') {
        $mail = !empty($template) ? 
                Yii::$app->mailer->compose($template,['data'=>$data]) ://这里以usesign模板为例
                Yii::$app->mailer->compose(); //加载原始配置
        
        $mail->setTo($to); //发送目标
        $mail->setSubject($title); //标题
       /* 
      *z这里可以添加你的附件  
      *$message->attach('source/file.pdf');//附件图片   内嵌图片在模板中查看
        $message->attachContent('Attachment content', ['fileName' => 'attach.txt', 'contentType' => 'text/plain'])//附件文本文件 
      */ 
         //要发送的内容
        !empty($template)?$mail->setTextBody(''):$mail->setHtmlBody($data);
        if ($mail->send()) {
            return 1;
        } 
        return 0;
       
    }
       
} 

4:自定义邮箱模板:

<?php

use yii\helpers\Html;
?>
<div class="body">
    <div class="container">
  <div class="logo">
            <img height="20" src="xxxx">//内嵌图片
        </div>
            <div class="panel-body">
                <p>
                    <?php echo $data['user_name'] ?>,您好!
                </p>
                <p>
                    账号:
                    <code><?php echo $data['user_name'] ?></code>
                </p>
                <p>
                    密码:
                    <code><?php echo $data['password_original'] ?></code>
                </p> 
            </div>
    </div>
</div>

5.短信通知:

5-1:
1.先去阿里云注册:

访问阿里云 官方网站,单击页面上的 免费注册 按钮。
按照屏幕提示完成注册流程并进行实名认证,短信服务只支持实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里
步骤 2 获取阿里云访问密钥
为了使用短信发送API-PHP SDK,您必须申请阿里云的访问密钥。

阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。

该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。

您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。
重点:
为了成功发送一条短信通知,您至少需要完成以下步骤

一、在控制台完成短信签名与短信模板的申请,获得调用接口必备的参数
在“短信签名”页面完成签名的申请,获得短信签名的字符串签名申请手册
在“短信模板”页面完成模板的申请,获得模板ID。模板申请手册

配置请看阿里云手册 ,下载demo :
https://help.aliyun.com/document_detail/55451.html?spm=5176.11065259.1996646101.searchclickresult.515119bbVdZj1U&aly_as=JoXJ__qh

把demo下载好了解压放在项目中,我这里是放到了 common/utils/ 下面。

<?php

//阿里云
ini_set("display_errors", "on");
require_once 'aliyun-dysms-php-sdk/api_sdk/vendor/autoload.php';
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\SendBatchSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;
// 加载区域结点配置
Config::load();
class SmsDemo
{ /**
     * 注册账号发送通知模板
     * @return stdClass
     */
    public static function sendMsgOnRegister($phoneNumber,$name,$username,$password) {
		
        // 初始化SendSmsRequest实例用于设置发送短信的参数
        $request = new SendSmsRequest();

        // 必填,设置短信接收号码
        $request->setPhoneNumbers($phoneNumber);

        // 必填,设置签名名称,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
        $request->setSignName("xxxx");

        // 必填,设置模板CODE,应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
        $request->setTemplateCode("yyyy");

	    // 可选,设置模板参数, 假如模板中存在变量需要替换则为必填项
        $request->setTemplateParam(json_encode(array(  // 短信模板中字段的值
            "name"=>$name,
            "username"=>$username,
            "password"=>$password,
        ), JSON_UNESCAPED_UNICODE));

        // 可选,设置流水号
        $request->setOutId("55566");

        // 选填,上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
        //$request->setSmsUpExtendCode("234567");

        // 发起访问请求
        $acsResponse = static::getAcsClient()->getAcsResponse($request);

        return $acsResponse;
    }

/**
 * 批量发送短信
 * 这里我会持续更新   需要这个功能的话可以看官网 也可以联系我Q1694084708
 */
}

感觉博主写的不错,请小伙伴们转载和分享点赞哟!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182327.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python 下载百度文库_百度文库随便下载,解除限制「建议收藏」

    阅读须知:文章介绍的软件下载地址载文末,需要复制链接到浏览器打开今天有小伙伴在群里问有没有百度文库的下载工具,其实之前推荐过,但目前有新的工具出现了,而且更加好用,所以给大家更新一下百度文档0.95吾爱大神力作,软件是用python写的,跟其他下载器相比,优点就是能下载源文档,以前的冰点也很好用,但缺点是下载的是pdf文件,还需要转换,而这款软件相对来说方便多了纯文字文档下载之后是doc文件,图文…

  • xshell连不上虚拟机linux的解决办法_虚拟机linux大概什么配置

    xshell连不上虚拟机linux的解决办法_虚拟机linux大概什么配置刚上手linux,我用的是VMareWorkstation虚拟机,装的是Ubuntu操作系统,就遇到虚拟机不能上网问题,以及xshell连接虚拟机失败。网上找了好多相关问题的解决方案,在懵懵懂懂中终于解决了上述问题。记录一下,以供参考1.首先window+r输入cmd进入命令行输入:ipconfig可以看到如下:重点关注:本机…

  • MySQL慢查询日志分析详解[通俗易懂]

    MySQL慢查询日志分析详解[通俗易懂]MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢…

    2022年10月12日
  • 多周期流水线cpu_cpu多级流水线

    多周期流水线cpu_cpu多级流水线CPU流水和流水线科普文章,隶属程序猿的内功修为

  • 使用Source Safe for SQL Server解决数据库版本管理问题(转载)

    使用Source Safe for SQL Server解决数据库版本管理问题(转载)

    2021年11月25日
  • mac系统webstorm快捷键

    mac系统webstorm快捷键WebStorm是jetbrains公司旗下一款JavaScript开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaSscriptIDE”等。与IntelliJIDEA同源,继承了IntelliJIDEA强大的JS部分的功能.现将最常用的快捷键挑出来备忘,既能方便记忆,又能提高工作效率。快捷键作用…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号