Некоторое оборудование шлет только e-mail уведомления. Для перенаправления данных сообщений в SMS (ну или еще куда), можно воспользоваться простейшим SMTP сервером (VB.NET):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
Module Program Private c_server As Net.Sockets.TcpListener Public Sub Main(args() As String) c_server = New Net.Sockets.TcpListener(Net.IPAddress.Any, 25) c_server.Start(10) While True Dim client As Net.Sockets.TcpClient = c_server.AcceptTcpClient client.ReceiveTimeout = 500 Dim th As New Threading.Thread(AddressOf ClientHandler) th.Start(client) End While End Sub Private Sub Send(cl As Net.Sockets.TcpClient, data As String) Dim d() As Byte = System.Text.Encoding.Default.GetBytes(data & vbNewLine) cl.Client.Send(d) End Sub Private Function Read(cl As Net.Sockets.TcpClient) As String Dim message As String = "" While True Dim buff(8192) As Byte Dim cnt As Integer Try cnt = cl.Client.Receive(buff) Catch ex As Exception Exit While End Try If cnt > 0 Then message &= System.Text.Encoding.Default.GetString(buff, 0, cnt) End If End While Return message End Function Private Sub ClientHandler(cl As Net.Sockets.TcpClient) Send(cl, "220 localhost -- SMTP2SMS gateway") While True Dim message As String = "" Dim buff As String = "" Try buff = Read(cl) Catch ex As Exception Exit While End Try If buff.Length > 0 Then If buff.StartsWith("EHLO") Then Send(cl, "250 OK") ElseIf buff.StartsWith("RCPT TO") Then Send(cl, "250 OK") ElseIf buff.StartsWith("MAIL FROM") Then Send(cl, "250 OK") ElseIf buff.StartsWith("QUIT") Then cl.Close() Exit While ElseIf buff.StartsWith("DATA") Then Send(cl, "354 Start mail input; end with") message = Read(cl) Send(cl, "250 OK") Else Debug.Print(message) End If End If End While End Sub End Module |
После получения текста сообщения (message = Read(cl)) можно уже его парсить и отправлять через SMS API провайдера уведомление на нужный номер, который кстати можно получать из “RCPT TO”.