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

时间:2015-07-06 12:58:01

标签: c# winforms sms desktop-application sms-gateway

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

任何人都可以建议如何实施此类功能,因为我没有“移动通信”的经验。与桌面应用程序的移动连接。

我的载体是EE(如果有帮助?)

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:6)

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

发送电子邮件

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
  • Sprint:## @ messaging.sprintpcs.com
  • TMobile:## @ tmomail.net
  • Virgin Mobile:## @ vmobl.com
  • Nextel:## @ messaging.nextel.com
  • 提升:## @ myboostmobile.com
  • Alltel:## @ message.alltel.com
  • EE:## @ emms.ee.co.uk(可能支持发送而无需回复)

替代

  • vendors通过API提供短信服务

答案 1 :(得分:4)

Twilio有C# helper library可以让你这样做。

以下是您向图书馆发送短信所需的代码:

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工作。

答案 2 :(得分:3)

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

  • 使用GSM调制解调器
  • 使用网络服务
  • 使用服务提供商提供的端点

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

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();
        }
    }
}

答案 3 :(得分:0)

Ozeki 的 C# sms api 以事件的形式提供反馈。这很棒,因为其他 SMS api-s 不提供传送到手机的报告或任何其他有关您的 SMS 发生的真实情况的反馈。这是代码。

使用系统; 使用 OZX;

命名空间 OzekiConsoleClient { 课程计划 { 静态 OzxClient 客户端;

    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 工作。