2013-10-28 46 views
5


我正在開發一個使用C#的Windows應用程序,其中我想根據某些條件向某個用戶發送SMS。我經歷了許多論壇帖子,「使用SMTP服務器發送短信」,但沒有一個使用完整的我。在this我得到了一些線索通過Gmail SMTP發送短信,但不工作,因爲我認爲這是運營商特定(不確定)。
我的代碼示例:
如何在Windows應用程序中使用SMTP服務器向移動設備發送短信?

try 
{ 
    MailMessage message = new MailMessage(); 
    message.To.Add("[email protected]"); 
    message.From = new MailAddress("[email protected]"); //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("[email protected]", "password"); 

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

上面的代碼不給予任何異常或錯誤,但也是我沒有得到我的號碼的任何短信也是如此。

那麼,我想問的是有什麼辦法使用SMTP服務器發送短信到任何運營商的手機號碼?

回答

8

您必須發送到短信網關。它是提供程序特定的。

維基百科有一個List of SMS Gateways

例如,要發送到Sprint PCS號碼,您將發送到[email protected],其中number是電話號碼(即5551234567或其他)。

+1

我試過但沒有工作:(。 – BhushanK

+3

@Bhushan:「但不工作」並沒有給我們太多的幫助,你有沒有收到錯誤?你是否檢查過提供商的網站,看看你是否需要做有些網關需要其他信息 –

+0

它沒有給出任何錯誤,但我也沒有在手機上收到短信,我也檢查了提供商網站http://www.bsnl.co.in/opencms/ bsnl/BSNL/services/broadband/sms.html。我認爲它需要使用它的短信網關的一些證書。 – BhushanK

-1

對於那些已經看過這麼多免費的方式來發送短信從一個網絡應用程序,並在法國,並有FreeMobile作爲運營商,我剛剛找到一種方式調用FreeMobile提供的免費Web服務。我用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/

那麼你的通行證,如果您需要轉發短信到其它號碼,可以用在許多移動應用完成AppStore或GooglePlay。

我希望這有助於!

相關問題