使用 C# (.NET) 发送短信:库和 API 概述
在现代 C# (.NET) 开发中,经常需要集成短信通知:注册确认、双因素身份验证、订单状态通知或简单的群发。在本文中,我们将分析从 C# 应用程序发送短信的三种流行方法:使用云服务 Twilio、Vonage(前身为 Nexmo) 和俄罗斯服务 SMSC.ru。所有代码示例均针对 .NET 6/8 编写,并使用现代异步方法。
1. 通过 Twilio 发送短信(全球提供商)
Twilio 是最流行的短信、语音消息和其他通信服务之一。它拥有出色的文档和官方的 NuGet 包。
安装库
通过 NuGet 包管理器添加包,或执行命令:
dotnet add package TwilioC# 发送短信示例
using Twilio;using Twilio.Rest.Api.V2010.Account;using Twilio.Types;
public class SmsService{ // 从 Twilio 控制台获取 Account SID 和 Auth Token private readonly string _accountSid = "您的_ACCOUNT_SID"; private readonly string _authToken = "您的_AUTH_TOKEN"; private readonly string _fromPhone = "+1234567890"; // 在 Twilio 购买的号码
public async Task<bool> SendSmsAsync(string toPhone, string message) { TwilioClient.Init(_accountSid, _authToken);
try { var msg = await MessageResource.CreateAsync( body: message, from: new PhoneNumber(_fromPhone), to: new PhoneNumber(toPhone) ); Console.WriteLine($"短信已发送!SID: {msg.Sid}"); return true; } catch (Exception ex) { Console.WriteLine($"错误: {ex.Message}"); return false; } }}重要提示: 发件人号码必须在 Twilio 账户中验证。对于测试账户,短信只能发送到已验证的号码。
2. 通过 Vonage(前身为 Nexmo)发送短信
Vonage 是另一个强大的云提供商。其 API 简单,且包可通过 NuGet 轻松安装。
安装库
dotnet add package Vonage发送短信示例
using Vonage;using Vonage.Request;using Vonage.Messaging;
public class VonageSmsService{ private readonly string _apiKey = "您的_API_KEY"; private readonly string _apiSecret = "您的_API_SECRET"; private readonly string _from = "YourApp"; // 发件人名称
public async Task<bool> SendSmsAsync(string toPhone, string message) { var credentials = Credentials.FromApiKeyAndSecret(_apiKey, _apiSecret); var client = new VonageClient(credentials);
var request = new SendSmsRequest { To = toPhone, From = _from, Text = message };
var response = await client.SmsClient.SendAnSmsAsync(request);
if (response.Messages[0].Status == "0") { Console.WriteLine($"短信已发送!ID: {response.Messages[0].MessageId}"); return true; } else { Console.WriteLine($"错误: {response.Messages[0].ErrorText}"); return false; } }}注意: 向俄罗斯号码发送短信可能需要额外配置字母名称。
3. 通过 SMSC.ru 发送短信(俄罗斯服务)
如果您的受众主要在俄罗斯和独联体国家,SMSC.ru 可能是更方便且更便宜的选择。无需库——只需 HTTP 请求即可。