我可以从C#应用程序发送短信吗

本文关键字:应用程序 我可以 | 更新日期: 2023-09-27 18:01:09

我希望构建一个程序,允许我直接从C#应用程序发送SMS消息。我打算建立一个"自动预约提醒"系统,自动向收件人的手机发送短信,通知他们即将到来的预约。

有人能建议我如何实现这类功能吗?因为我在"移动通信"和桌面应用程序的移动连接方面没有经验。

我的运营商是EE(如果有帮助的话?(

我可以从C#应用程序发送短信吗

大多数主要运营商都提供电子邮件转文本服务。该程序可以使用电子邮件发送短信。例如:

发送电子邮件

var message = new MailMessage();
message.From = new MailAddress("sender@foo.bar.com");
message.To.Add(new MailAddress("5551234567@txt.att.net"));//See carrier destinations below
//message.To.Add(new MailAddress("5551234568@txt.att.net"));
//message.CC.Add(new MailAddress("carboncopy@foo.bar.com"));
message.Subject = "This is my subject";
message.Body = "This is the content";
var client = new SmtpClient();
client.Send(message);

承运人目的地

  • ATT:编写一封新的电子邮件,并使用收件人的10位无线电话号码,后跟@txt.ATT.net。例如,5551234567@txt.att.net.
  • Verizon:同样,##@vtext.com
  • 斯普林特:##@messaging.ssprintpcs.com
  • TMobile:###@tmomail.net
  • 维珍移动:##@vmobl.com
  • Nextel:##@messaging.Nextel.com
  • Boost:###@mybrowsmobile.com
  • Alltel:##@message.Alltel.com
  • EE:##@mms.e.co.uk(可能支持发送而不回复(

备选方案

  • 有些供应商通过API提供SMS消息服务

Twilio有一个C#帮助程序库,可以让您做到这一点。

以下是向库发送短信所需的代码:

using System;
using Twilio;
class Example
{
  static void Main(string[] args)
  {
    // Find your Account Sid and Auth Token at twilio.com/user/account
    string AccountSid = "{{ account_sid }}";
    string AuthToken = "{{ auth_token }}";
    var twilio = new TwilioRestClient(AccountSid, AuthToken);
    var message = twilio.SendMessage("+14158141829", "+14159352345", "This text message was sent with code!");
    Console.WriteLine(message.Sid);
  }
}

免责声明:我为Twilio工作。

您可以通过多种方式发送短信

  • 使用GSM调制解调器
  • 使用web服务
  • 使用服务提供程序提供的终结点

通过下面提供的链接,您可以理解上述每一点的基本逻辑,并尝试在代码中实现这一点。

http://www.codeproject.com/Articles/19023/Sending-SMS-using-NET

你需要在你的表单构造函数中创建一个sms引擎的实例,如下所示。

  public partial class Form1 : Form
    {
        SMSCOMMS SMSEngine;
        public Form1()
        {
                    SMSEngine = new SMSCOMMS("COM1");

            InitializeComponent();
            SMSEngine.Open();
        }
        private void button1_Click(object sender, EventArgs e)
        {
          SMSEngine.SendSMS("919888888888","THIS IS YOUR MESSAGE");
          SMSEngine.Close();
        }
    }
}

Ozeki的C#短信api以事件的形式提供反馈。这很好,因为其他短信api-s不提供发送到手机的报告或任何其他关于你的短信发生了什么的真实反馈。这是代码。

使用系统;使用OZX;

命名空间OzekiConsoleClient{班级计划{静态OzClient;

    static void Main(string[] args)
    {
        Client = new OzxClient();
        Client.AutoReconnect = true;
        Client.OnMessageAcceptedForDelivery += Client_OnMessageAcceptedForDelivery;
        Client.OnMessageNotAcceptedForDelivery += Client_OnMessageNotAcceptedForDelivery;
        Client.OnMessageSubmitSuccess += Client_OnMessageSubmitSuccess;
        Client.OnMessageSubmitFailed += Client_OnMessageSubmitFailed;
        Client.OnMessageDeliverySuccess += Client_OnMessageDeliverySuccess;
        Client.OnMessageDeliveryFailed += Client_OnMessageDeliveryFailed;
        Client.OnMessageViewed += Client_OnMessageViewed;
        Client.OnConnected += Client_OnConnected;
        Client.OnDisconnected += Client_OnDisconnected;
     
        Client.Connect("127.0.0.1",9580,"testuser","testpass");
    }
    
    static void Client_OnConnected(object sender, EventArgs e)
    {
        Console.WriteLine("Successfully connected.");
         
        var msg = new OzxMessage();
        msg.ToAddress = "+447958448798";
        msg.Text = "Hello world";
        Console.WriteLine("Sending message. ID: "+msg.ID);
        Client.Send(msg);
    }
}

}

您也可以使用此代码通过Android手机发送短信,而不是订阅在线短信服务。

免责声明:我为Ozeki工作。

我正在使用https://d7networks.com/集成是简单的

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install-Package Newtonsoft.Json
class Program
{
    static async Task Main(string[] args)
    {
        // Set the URL to send the POST request to
        string url = "https://api.d7networks.com/messages/v1/send";
        // Create a new HttpClient object
        HttpClient client = new HttpClient();
        // Set the bearer token authentication header
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_API_TOKE"); // Replace YOUR_API_TOKEN with your API token
        // Create a new message object with channel, recipients, and content attributes
        var message = new
        {
            originator = "smsinfo", // Replace smsinfo with your sender ID
            recipients = new string[] { "+97150900XXXX"}, // Replace +97150900XXXX with your recipient's number
            content = "Testing multi lined message. 'n This is the second line. 'n This is the third line."
        };
        // Nest the message object inside a messages object
        var messages = new
        {
            messages = new[] { message }
        };
        // Convert the messages object to a JSON string
        string json = JsonConvert.SerializeObject(messages);
        // Create a new StringContent object with the JSON string
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        // Send the POST request and get the response
        HttpResponseMessage response = await client.PostAsync(url, content);
        // Print the response status code and message
        Console.WriteLine($"Response status code: {response.StatusCode}");
        Console.WriteLine($"Response message: {await response.Content.ReadAsStringAsync()}");
    }
}
相关文章: