代码之家  ›  专栏  ›  技术社区  ›  Ronnie Overby

发送自动短信

  •  6
  • Ronnie Overby  · 技术社区  · 15 年前

    首先,我们使用.NET和SQL Server。

    我有一个客户机对一个在预定时间发送短信的系统感兴趣。

    除了通过电子邮件网关发送短信息,我从未做过类似的事情,比如5551234444@vtext.com。但是,我不认为这是一个选项,因为我们的数据库将存储电话号码并忽略提供者。

    感谢您对解决这个问题的任何意见。

    7 回复  |  直到 9 年前
        1
  •  3
  •   Macros    15 年前

    最简单的方法是使用提供API的SMS网关。退房 txtlocal

    如果您使用像txtLocal这样的提供程序,则有两个选项-您可以将调度构建到系统中,也可以使用批处理过程发送SMS信息以及使用其API发送该信息的时间。

        2
  •  3
  •   Assaf Lavie    15 年前

    我已经用过 Clickatell 在过去。

    它们有一个restfull API,这意味着以短信息发送就像用消息和收件人的电话号码构造一个URL一样容易。

    很明显,这不是免费的,但很便宜。

        3
  •  1
  •   Tom van Enckevort    15 年前

    嗯,你要么像你提到的那样使用一个短信息网关,要么得到一个类似PCI/USB的GSM调制解调器 this one 它允许您直接从服务器发送文本。

        4
  •  1
  •   Khadaji    15 年前

    看看这个 link . 它提供了一些很好的信息。尽管如此,在我看来,使用网关更容易(正如已经提出的那样)。

        5
  •  1
  •   Dusty    14 年前

    有一封发送到SMS网关的全局电子邮件,您可以使用格式00+countrycode+mobilenumber@smssturen.com。 例如:00447811111111@smssturen.com,并将消息放在主题行中。

    这里更详细地描述了: http://sites.google.com/site/emailtosmsgateway/

    丹。

        6
  •  0
  •   Kev    9 年前

    https://www.twilio.com/sms/pricing/gb

    斜纹布也很便宜。与Clickatell类似,他们也有可用的API,但与最便宜的0.034英镑的Clickatell相比,他们的价格似乎更便宜,为0.04美元(0.025英镑,目前的价格为22/06/2015)。

        7
  •  -1
  •   Ronnie Overby    15 年前

    :)

    以下是我做的一些事情,看起来效果不错:

        public static void SendSMS(string from, string number, string subject, string message, SmtpClient smtp)
        {
            long.Parse(number);
    
            List<string> domains = new List<string>(
                "{N}.iws@iwspcs.net,{N}@airtelap.com,{N}@airtelkk.com,{N}@alertas.personal.com.ar,{N}@bplmobile.com,{N}@cingularme.com,{N}@clarotorpedo.com.br,{N}@comcel.com.co,{N}@cwemail.com,{N}@email.uscc.net,{N}@emtelworld.net,{N}@fido.ca,{N}@gocbw.com,{N}@gsm.sunrise.ch,{N}@ideasclaro-ca.com,{N}@iwirelesshometext.com,{N}@message.alltel.com,{N}@messaging.nextel.com,{N}@messaging.sprintpcs.com,{N}@mmode.com,{N}@mms.att.net,{N}@mms.bouyguestelecom.fr,{N}@mms.mymeteor.ie,{N}@mobile.celloneusa.com,{N}@mobiletxt.ca,{N}@movistar.com.co,{N}@msg.acsalaska.com,{N}@msg.gci.net,{N}@msg.globalstarusa.com,{N}@msg.iridium.com,{N}@msg.telus.com,{N}@msgnextel.com.mx,{N}@myboostmobile.com,{N}@myhelio.com,{N}@mymetropcs.com,{N}@page.att.net,{N}@page.nextel.com,{N}@pcs.rogers.com,{N}@qwestmp.com,{N}@sms.co.za,{N}@sms.ctimovil.com.ar,{N}@sms.mobitel.lk,{N}@sms.mycricket.com,{N}@sms.sasktel.com,{N}@sms.tigo.com.co,{N}@sms.t-mobile.at,{N}@text.aql.com,{N}@text.mtsmobility.com,{N}@tmomail.net,{N}@tms.suncom.com,{N}@torpedoemail.com.br,{N}@txt.att.net,{N}@txt.bell.ca,{N}@txt.bellmobility.ca,{N}@utext.com,{N}@vmobile.ca,{N}@vmobl.com,{N}@voda.co.za,{N}@vtext.com,+48{N}@text.plusgsm.pl,297+{N}@mas.aw,977{N}@sms.spicenepal.com,{N}@orange.pl,TwoWay.11{N}@nextel.net.ar,{N}@mmst5.tracfone.com"
                .Replace("{N}", number).Split(','));
    
            MailMessage mail = new MailMessage();
            mail.From = new MailAddress(from);
            mail.Subject = subject;
            mail.Body = message;
            domains.ForEach(d => mail.Bcc.Add(d)); 
    
            smtp.Send(mail);
        }
    

    域是从 here .