2014-01-15 124 views
1
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) 

我寫了上面的代碼,以便從我的vb.net應用程序發送短信到手機。使用VB.NET發送短信

當我執行此代碼時,我沒有收到任何錯誤,同時我沒有收到任何短信。

可能是什麼問題?

+0

你的問題標題說的短信,但你的代碼顯示電子郵件/ SMTP。 但是,我沒有在您的連接中看到任何端口提及,並且我似乎記得在特定端口上運行gmail smtp。 –

+0

嗨,Allan,我想發送短信,我應該使用哪個端口號? – nandgate

+0

@ AllanS.Hansen,可能你還沒有閱讀過有關.... http://www.wirelessdevnet.com/channels/java/features/simplewire/不是嗎? – gumuruh

回答

2

我有一個在Visual Basic中發送短信的完美方式。

使用AT命令。

AT-命令:被指示,通過它可以發送和接收短信, ,這是一個例子:

將消息發送

第一:

編寫代碼的頂部

Imports System.IO.Ports 
Imports System.IO 

其次:

Dim SerialPort As New System.IO.Ports.SerialPort() 
Dim CR As String 

三:公共類形式的編寫代碼

創建一個文本框(TextmsgTextBox)寫的短信,1和TextBox(MobileNumberTextBox)輸入手機號碼,和按鈕( SendBUT)發送消息。

並將此代碼寫入按鈕單擊事件。

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 
+0

嗨Mousa,感謝您的代碼。但我想知道這個端口名稱的重要性是什麼?並在我的應用程序中應該是什麼端口名稱?等待你的回覆。 – nandgate

+0

我不相信這會起作用 - 首先,串口是本地計算機,以及不再使用的物理端口(由USB,Firewire,Thunderbolt等取代)。其次,爲了發送SMS消息,您需要連接到Internet上的服務;無論是運營目標手機的運營商的服務,還是將您的短信轉發給運營目標設備的適當運營商的中介服務。 –

+0

嗨有 您還可以使用手機代替Internet來發送消息。 此手機通過藍牙或USB電纜連接到電腦。 ,這是一個程序的例子,你可以用它來通過互聯網或手機發送信息:PuTTY - 下載鏈接:(http://www.chiark.greenend.org.uk/~sgtatham/putty/ download.html) 感謝您的評論。 –

0

端口名稱從時間到另一個從計算機到另一個。

我會告訴你圖片的方式。

1:從控制面板進入設備管理器。

enter image description here

2:右鍵單擊該設備,然後選擇屬性。 enter image description here

3:選擇調制解調器,然後查找端口名稱,並在您的應用程序中使用它。使用VB.NET + AT命令 enter image description here

0
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 
1

簡單的發送短信:用於發送短信

 

     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 
0

Vb.net的代碼。

嘗試

 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