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

查找账号的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)
苦苦苦苦苦——签名被运行商变黑名单了,不能发短信了,呜呜呜,之后需要在重新申请吧
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)