使用 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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 17:23:16  来源:igfitidea点击:

Sending SMS using VB.NET

vb.netsmsvb.net-2010

提问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:从控制面板进入设备管理器。

enter image description here

在此处输入图片说明

2:Right click on the device, and choose Properties. enter image description here

2:右键单击设备,然后选择属性。 在此处输入图片说明

3:Choose Modem tap, and look for port name, and use it in your application. enter image description here

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