5


我正在使用 C# 开发一个 Windows 应用程序,我想根据某些条件向某个用户发送 SMS。我浏览了许多论坛帖子以“使用 SMTP 服务器发送短信”,但没有一个对我有用。在我得到了一些通过 Gmail SMTP 发送 SMS 的线索,但我认为它是特定于运营商的(不确定)。
我的代码示例:

try
{
    MailMessage message = new MailMessage();
    message.To.Add("1568235685@sms.sancharnet.in");
    message.From = new MailAddress("sameone@gmail.com"); //See the note afterwards...
    message.Body = "Hi, How r you ?";

    SmtpClient smtp = new SmtpClient("smtp.gmail.com");
    smtp.EnableSsl = true;
    smtp.Port = 587;
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtp.Credentials = new NetworkCredential("someonet@gmail.com", "password");

    smtp.Send(message);
    MessageBox.Show("Message sent successfully");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Error");
}

上面的代码没有给出任何异常或错误,但我的号码也没有收到任何短信。

那么,我想问的是,有什么方法可以使用 SMTP 服务器将 SMS 发送到任何运营商的手机号码?

4

2 回答 2

11

您必须发送到 SMS 网关。它是特定于提供商的。

维基百科有一个SMS 网关列表

例如,要发送到 Sprint PCS 号码,您可以发送到 number@messaging.sprintpcs.com,其中 number 是电话号码(即 5551234567 或其他)。

于 2013-10-28T13:11:03.077 回答
-1

对于那些一直在寻找从网络应用程序发送短信的免费方式,并且在法国并拥有 FreeMobile 作为运营商的人来说,我刚刚找到了一种调用 FreeMobile 提供的免费网络服务的方法。我已经用 C# 编写了这段代码,它工作正常。

private void SendSMSAlert(String message)
{
    try
    {
        String url = "https://smsapi.free-mobile.fr/sendmsg?user="YourFreeMobileIdentifierHere"&pass="YOURPASSHERE"&msg=" + message;
        var request = (HttpWebRequest)WebRequest.Create(url);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        response.Close();
    }
    catch(WebException e)
    {
        System.Diagnostics.Trace.WriteLine("SMS Not Sent! Exception "+e.ToString());
    }

}

因此,如果您在法国有 freeMobile 线路,您可以从https://mobile.free.fr/moncompte/获取您的通行证

然后,如果您需要将 SMS 转发到其他号码,可以通过 AppStore 或 GooglePlay 上的许多移动应用程序来完成。

我希望这有帮助!

于 2016-03-03T10:24:42.723 回答