从ASP.NET网站发送短信

26

有没有一种方法可以使用Web API从ASP.NET网站发送短信?我知道有关Web服务的内容,但不知道如何从我的应用程序调用这些服务。

3个回答

35

使用Web服务是最好的方法。我在一个网站上使用Twilio,而且设置和工作都非常容易。可扩展性也不成问题,你可以通过使用Twilio来代替花费开发人员时间构建自己的解决方案,从而弥补成本。

Twilio: http://www.twilio.com/

Twilio提供了.NET库:https://www.twilio.com/docs/csharp/install

以下是发送短信的示例代码(摘自twilio-csharp项目,仅为演示其易用性而转载):

static void Main(string[] args)
{
    TwilioRestClient client;

    // ACCOUNT_SID and ACCOUNT_TOKEN are from your Twilio account
    client = new TwilioRestClient(ACCOUNT_SID, ACCOUNT_TOKEN);

    var result = client.SendMessage(CALLER_ID, "PHONE NUMBER TO SEND TO", "The answer is 42");
    if (result.RestException != null) {
        Debug.Writeline(result.RestException.Message);
    }    
}

1
非常感谢,我会去查看的。我还有一个疑问,发送短信时我需要托管网站吗?还是可以直接使用Visual Studio发送? - Kanishka
它不需要成为一个站点。您可以从任何类型的.NET程序集中执行此操作。ASP.NET网站托管或在VS内运行,控制台应用程序,Windows服务等等。 - mfanto
您可以在以下链接envato上下载Twilio外呼和短信的完整代码:http://codecanyon.net/item/click-to-call-and-message-with-aspnet/15029966?ref=intelliwins - sambit.albus

11
我觉得我有点晚了告诉你你很幸运,但对于那些在之后发现这篇文章的人,我创建了一个视频展示如何使用您的Twilio帐户和asp.net发送文本消息: 我将引导您通过使用twilio和asp.net c#发送短信 如果你没有10分钟观看视频,以下是代码:
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Configuration;
using Twilio;

namespace TwilioSMSHowTo
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void SendMessage_OnClick(object sender, EventArgs e)
        {
            string ACCOUNT_SID = ConfigurationManager.AppSettings["ACCOUNT_SID"];
            string AUTH_TOKEN = ConfigurationManager.AppSettings["AUTH_TOKEN"];

            TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);

            client.SendMessage("(502) 276-8990", ToNumber.Text, Message.Text);
        }
    }
}

要使此代码正常工作,您需要使用NuGet获取Twilio API,并且需要将我的configurationmanager.appsettings内容替换为您的帐户ID和身份验证令牌。

编码愉快!


3
我可能会打那个号码,看看马克·海根是否会接电话。 - d512
我可能会!只取决于我是否记得取消测试账户上的号码。 :D - Mark Hagan

7

如果您希望使用另一个短信服务提供商Way2Sms.com而不是Twilio API来完成这项任务,我认为以下代码可以帮助您:

public void sendsms(object sender, EventArgs e)
{

    if (Page.IsValid)
    {
        HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://ubaid.tk/sms/sms.aspx?uid=" + yourmobilenumber + "&pwd=" + yourpassword + "&msg=" + body.Text + "&phone=" + recipientNo.Text + "&provider=way2sms");
        HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
        System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
        string responseString = respStreamReader.ReadToEnd();
        respStreamReader.Close();
        myResp.Close();

    }
}

能否通过短信发送图片? - Sam Cromer
3
SMS代表短信服务,图片可以通过MMS(多媒体短信服务)或电子邮件发送。这条评论很老了,你可能现在已经知道了,如果已知,请忽略我的评论。 - Felype
仅限印度有效,但我想发送给全世界兄弟。 - nouman arshad
@Felype,你的评论为互联网所持有的知识做出了贡献。即使Sam Cromer已经知道,还会有更多的人不知道。+1感谢!尽管在Stack上这种事情不太酷。 - RadioSpace

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接