如何在Windows应用程序中使用SMTP服务器向移动设备发送短信
本文关键字:移动 服务器 SMTP Windows 应用程序 | 更新日期: 2023-09-27 18:37:04
我正在使用 C# 开发一个 Windows 应用程序,其中我想根据某些条件向某个用户发送短信。 我浏览了许多论坛帖子来"使用 SMTP 服务器发送短信",但没有一个对我来说是完全有用的。在这方面,我得到了一些通过Gmail SMTP发送短信的线索,但无法正常工作,因为我认为它是特定于运营商的(不确定)。
我的代码示例:
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 网关。它是特定于提供程序的。
维基百科有一个短信网关列表。
例如,要发送到Sprint PCS号码,您将发送到 number@messaging.sprintpcs.com,其中号码是电话号码(即5551234567或其他号码)。
对于那些一直在
寻找从网络应用程序发送短信的免费方式,并且在法国,并且有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());
}
}
因此,如果您在法国有免费的移动线路,则可以从 https://mobile.free.fr/moncompte/
然后,如果您需要将短信转发到其他号码,可以使用AppStore或GooglePlay上的许多移动应用程序来完成。
我希望这有帮助!