使用 VB.NET 发送短信
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/21131761/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Sending SMS using VB.NET
提问by nandgate
Dim message As New MailMessage()
message.To.Add("[email protected]")
message.From = New MailAddress("[email protected]")
message.Subject = "Hi"
message.Body = "SMS"
Dim smtp As New SmtpClient("smtp.gmail.com")
smtp.EnableSsl = True
smtp.Credentials = New System.Net.NetworkCredential("[email protected]", "password")
smtp.Send(message)
I have written the above code in order to send SMS from my vb.net application to a Mobile phone.
我编写了上面的代码,以便从我的 vb.net 应用程序向手机发送短信。
When i execute this code i am not getting any errors, at the same time i am not receiving any SMS.
当我执行此代码时,我没有收到任何错误,同时我也没有收到任何短信。
What could be the problem ?
可能是什么问题呢 ?
回答by Mousa Alfhaily
I have a perfect way to send SMS in visual basic.
我有一个完美的方式来在visual basic中发送短信。
Using AT-commands.
使用 AT 命令。
AT-commands:are instructed through which you can send and receive SMS messages, and this is an example:
AT-commands:指示您可以发送和接收 SMS 消息,这是一个示例:
To Send a message
发送消息
First:
第一的:
Write this code in the top
把这段代码写在最上面
Imports System.IO.Ports
Imports System.IO
Secondly:
其次:
Write this code in the public class of form:
在表单的公共类中编写此代码:
Dim SerialPort As New System.IO.Ports.SerialPort()
Dim CR As String
Thirdly:
第三:
Create a textBox(TextmsgTextBox) to write the text message, and TextBox2(MobileNumberTextBox) to enter the mobile number, and Button(SendBUT) to Send message.
创建一个 textBox(TextmsgTextBox) 来编写文本消息,创建一个 TextBox2(MobileNumberTextBox) 来输入手机号码,以及一个 Button(SendBUT) 来发送消息。
And write this code in the button click event.
并在按钮单击事件中编写此代码。
If SerialPort.IsOpen Then
SerialPort.Close()
End If
SerialPort.PortName = COM4
SerialPort.BaudRate = 9600
SerialPort.Parity = Parity.None
SerialPort.StopBits = StopBits.One
SerialPort.DataBits = 8
SerialPort.Handshake = Handshake.RequestToSend
SerialPort.DtrEnable = True
SerialPort.RtsEnable = True
SerialPort.NewLine = vbCrLf
Dim message As String
message = MsgRichTextBox.Text
Try
SerialPort.Open()
Catch ex As Exception
MsgBox("The modem with the port '" & SerialPort.PortName & "'is not plugged in!!" & vbcrlf & "Please plug the modem and try again.")
End Try
If SerialPort.IsOpen() Then
SerialPort.Write("AT" & vbCrLf)
SerialPort.Write("AT+CMGF=1" & vbCrLf)
SerialPort.Write("AT+CMGS=" & Chr(34) & phoneNumBox.Text & Chr(34) & vbCrLf)
SerialPort.Write(message & Chr(26))
SentPicture.Visible = True
SentLabel.Visible = True
SentTimer.Start()
Else
MsgBox("Port '" & SerialPort.PortName & "' is not available!")
End If
回答by Pembuatan Program
Simple Send SMS using VB.NET + AT Command :
使用 VB.NET + AT 命令简单发送短信:
Try With SerialPort1 .Write("at+cmgf=1" & vbCrLf) Threading.Thread.Sleep(1000) .Write("at+cmgs=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf) .Write(TextBox2.Text & Chr(26)) Threading.Thread.Sleep(1000) End With Catch ex As Exception End Try
回答by Shaneesh P
Vb.net code for send sms.
用于发送短信的 Vb.net 代码。
Try
尝试
Dim url As String
'paste your sms api code to url
'url = "http://xxxxxxxxxx.com/SMS_API/sendsms.php?username=XXXX&password=XXXXX&mobile=" + mobile + "&sendername=XXXX&message=XXXXX&routetype=1"
url="Paste your api code"
Dim myReq As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
Dim myResp As HttpWebResponse = DirectCast(myReq.GetResponse(), HttpWebResponse)
Dim respStreamReader As New System.IO.StreamReader(myResp.GetResponseStream())
Dim responseString As String = respStreamReader.ReadToEnd()
respStreamReader.Close()
myResp.Close()
MsgBox("ok")
Catch ex As Exception
MsgBox(ex.Message)
End Try
http://yii2ideas.blogspot.in/2017/11/how-to-send-sms-from-vb-net-application.html
http://yii2ideas.blogspot.in/2017/11/how-to-send-sms-from-vb-net-application.html
回答by Mousa Alfhaily
Port name change from time to another and from computer to another.
端口名称会随着时间更改为另一个,从计算机更改为另一个。
I will show you the way by pictures.
我会用图片告诉你的方式。
1:Enter to Device Manager from Control Panel.
1:从控制面板进入设备管理器。
2:Right click on the device, and choose Properties.
2:右键单击设备,然后选择属性。
3:Choose Modem tap, and look for port name, and use it in your application.
3:选择Modem tap,查找端口名称,并在您的应用程序中使用它。
回答by user3706834
Dim dt As New DataTable
CreateDataTable(dt, "select * from Table where Id = 1")
If (dt.Rows.Count > 0) Then
Dim request As HttpWebRequest
Dim response As HttpWebResponse = Nothing
Dim url As String
Dim senderid As String = dt.Rows(0).Item("SenderId").ToString()
Dim password As String = dt.Rows(0).Item("Password").ToString()
Dim host As String
Dim originator As String = dt.Rows(0).Item("UserName").ToString()
Try
host = "http://smsidea.co.in/sendsms.aspx?"
'originator = "3423434343"
'password = "234hj"
url = host + "mobile=" & HttpUtility.UrlEncode(originator) _
& "&pass=" + HttpUtility.UrlEncode(password) _
& "&senderid=" + HttpUtility.UrlEncode(senderid) _
& "&to=" + HttpUtility.UrlEncode(StrToNumber) _
& "&msg=" + HttpUtility.UrlEncode(StrBody)
request = DirectCast(WebRequest.Create(url), HttpWebRequest)
response = DirectCast(request.GetResponse(), HttpWebResponse)
'MessageBox.Show("Response: " & response.StatusDescription)
Catch ex As Exception
End Try
End If