使用阿里云进行短信验证码或者推广类短信的发送

事先准备工作

比较繁琐:

  1. 打开阿里云官网 阿里云-计算,为了无法计算的价值,注册/登陆账号;
  2. 点击右上角“控制台”,搜索“短信服务”,点击打卡“短信服务”控制台;
  3. 点击右侧“快速学习和测试”;
  4. 依次跟随引导完成:申请资质——申请签名——申请模板——系统设置——发送短信;具体可参考:阿里云 短信服务——发送短信验证码图文教程-阿里云开发者社区
  5. 保存信息以备程序发送使用;

 查找账号的AccessKey——忘了这个ID怎么来的了,有需要之后细查一下

设置环境变量——将AccessKey的ID和SECRET添加到环境变量

C#工程控制发送短信

接下来进行阿里云短信发送的实例

短信服务选择“发送短信”,而后点击“SDK示例”,选择需要的语言进行实例演示,此次以“C#”语言进行演示;

下载完整工程,并打开

修改C#项目中的相关参数

修改添加Access的ID和SECRET

修改

  • SignName——签名名称
  • TemplateCode——模板Code,“SMS****”
  • PhoneNumber——接受号码,需提前添加进入测试号码中
  • TemplateParam——以为发送的是验证码,需要指定验证码的数字,e.g. "1234"

 最终的呈现版本为

 Matlab工程控制发送短信

因为阿里云中不支持直接使用matlab语言进行API控制,所以我们将C#工程转变为dll文件,通过matlab调用,而后使用matlab发送短信。需要注意的时,C#的主程序内容和上边无异,也需要提前设置AccessKey 的ID和Secret。

如何使用将C#工程变为dll文件,见C#生成.dll文件并在Matlab中调用-CSDN博客

 然后使用matlab加载dll文件,编写代码

function textme(PhoneNumbers,verificationCode)
% 使用验证码模板 
    % 加载 DLL 文件
    % 指定DLL文件所在的文件夹路径
    dllFolderPath = 'E:\Program Files (x86)\Microsoft Visual Studio\projects\test_CshapewithMatlab\bin\Debug\net48'; % 请替换为实际路径
    
    % 获取该路径下的所有DLL文件
    dllFiles = dir(fullfile(dllFolderPath, '*.dll'));
    
    % 遍历并加载所有DLL文件
    for k = 1:length(dllFiles)
        dllFilePath = fullfile(dllFolderPath, dllFiles(k).name);
        
        % 尝试加载DLL文件
        try
            NET.addAssembly(dllFilePath);
            fprintf('已成功加载: %s\n', dllFiles(k).name);
        catch ME
            fprintf('加载失败: %s\n原因: %s\n', dllFiles(k).name, ME.message);
        end
    end
    
    % 创建 C# 类的对象
    client = AlibabaCloud.SDK.Sample.Sample.CreateClient();
    
    % 创建请求对象
    sendSmsRequest = AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest();
    sendSmsRequest.SignName = 'WYZ短****';
    sendSmsRequest.TemplateCode = 'SMS_****';
    sendSmsRequest.PhoneNumbers = '190****3914';
    sendSmsRequest.TemplateParam = '{"code":"1234"}';
    if nargin == 2
        sendSmsRequest.PhoneNumbers = PhoneNumbers;
        sendSmsRequest.TemplateParam = sprintf('{"code":"%s"}', verificationCode);
    end
    
    % 运行时选项
    runtime = AlibabaCloud.TeaUtil.Models.RuntimeOptions();
    
    % 调用 C# 函数发送短信
    try
        resp = client.SendSmsWithOptions(sendSmsRequest, runtime);
        disp(resp);
        fprintf("发送成功");
    catch e
        disp(e.message);
    end

end

测试

PhoneNumbers = '190****3914';
% 自定义数据
% verificationCode = '1234'
% 发送时间
currentTime = datetime('now', 'Format', 'HHmm');
verificationCode = char(currentTime);

textme(PhoneNumbers,verificationCode)

苦苦苦苦苦——签名被运行商变黑名单了,不能发短信了,呜呜呜,之后需要在重新申请吧

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐