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

注册邮箱发送短信验证_网易邮箱注册系统未收到短信分享概要:讲述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
 */
}

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java treeNode 树转list

    java treeNode 树转list树转 list 一般转换方式递归 写起来复制 容易出错 这样就可以应用栈的进出规则进行转化 栈先进后出 https baike baidu com item E6 A0 88 fr aladdin publicList TreeNode node2List TreeNodenode 返回结果集 List TreeNode result TreeNode TreeNode

    2025年9月23日
    4
  • Repeater控件的ItemDataBound事件

    Repeater控件的ItemDataBound事件Repeater控件的ItemDataBound事件:在项被绑定数据后触发。下面的例子来自msdn,不过我把前台和后台分开了。前台是:ViewCode&lt;%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="WebForm1.aspx.cs"Inherits="WebApplication2.WebForm1…

    2022年10月13日
    4
  • PG数据库事务隔离级别「建议收藏」

    PG数据库事务隔离级别「建议收藏」Postgres数据库事务隔离级别介绍

    2022年10月11日
    3
  • 如何判断list、map集合是否为空[通俗易懂]

    如何判断list、map集合是否为空[通俗易懂]前言最近在面试的时候,经常会遇到一个问题:请问如何判断一个list/map集合为空?这个问题我们可以反向思考,一个集合不为空,假设有一个对象map,要满足map!=null&&!map.isEmpty()在这里会出现一个误区,需要特别注意:a.List<T>list=newArrayList<>();if(!list.isE…

    2022年6月16日
    66
  • 产品经理告诉你什么是PMF?什么是MVP?

    产品经理告诉你什么是PMF?什么是MVP?一、什么是PMF?PMF指的是产品与市场匹配的产品1.如何判断PMF的临界点?1、留存:30%的新用户次日留存2、新增用户DAU:大于1003、用户数:10万用户数DAU:单日活跃用户量,反应产品短期用户活跃度2.PMF几种类型1、更好体验的产品,如美图秀秀2、抓住细分市场,如uber、P2P3、全新的市场,如微博的@4、综合体,如Airbnb二、什么是MVP?MVP指的是对用户有价值的最小可用产品MVP打造阶段:对用户有价值的最小可用产品,从功能列表中定位出产品的核心功能,.

    2022年5月24日
    62
  • Pycharm安装PyQt5和pyqt5-tools从而使用Qt Designer

    Pycharm安装PyQt5和pyqt5-tools从而使用Qt Designer真不容易啊 python 环境的搭建一直都是玄学问题 搞了半天 终于搞定了 一 安装 PyQt5 和 pyqt5 tools 为了制作 比较好看的 图形化界面 就得用 QtDesigner 这样就要安装 PyQt5 和 pyqt5 tools 安装过程出现了各种各样的问题 现在记录下来并附上大佬们的博客 OrzPycharm 安装第三方库的方法我之前写过 就是 File gt Settings

    2025年6月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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