منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ (/showthread.php?tid=7380)

الصفحات: 1 2


كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - أم عبد العزيز - 15-12-12



السلام عليكم ،

لدي مشروع تخرج ، ويحتوي على شاشة لإرسال رسائل sms لمجموعات معينة أو إلى أرقام معينة ..

كيف يمكن عمل مثل هذا الفورم ؟؟

وشكرا ..



كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - Mr. DotNet - 15-12-12

شاهد الموضوع ادناه
http://vb4arb.com/vb/showthread.php?3112-%C7%D3%CA%DD%D3%C7%D1-%CD%E6%E1-%28%D1%D3%C7%C6%E1-%C7%E1%E3%E6%C8%C7%ED%E1%29-%E6-%28%C7%E1%D3%DF%E4-Irsskin%29


كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - أم عبد العزيز - 15-12-12

الله يجزاك خير

حملت ملفات api التي يوفرها موقع موبايلي وموقع جوالي sms

ولكن عند عمل debug يظهر لي رسالة خطأ ..

فما السبب ؟

مع العلم أني لم أقم بتغيير شيء في ملفاتهم، نزلتها من النت وفتحتها بالفيجوال ستوديو فقط


كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - sooriaty03 - 16-12-12

أم عبد العزيز كتب :الله يجزاك خير

حملت ملفات api التي يوفرها موقع موبايلي وموقع جوالي sms

ولكن عند عمل debug يظهر لي رسالة خطأ ..

فما السبب ؟

مع العلم أني لم أقم بتغيير شيء في ملفاتهم، نزلتها من النت وفتحتها بالفيجوال ستوديو فقط
كم إصدار الفيجوال ستوديو عندك


كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - @@أبورائد@@ - 16-12-12

السلام عليكم ورحمة الله وبركاته

اختصرت لكم البرنامج بأهم جزء منه وهو SendMessage

عند الاشتراك لدى شركة موبايلي وأي شركة سيعطونكم username و password
عند استخدام هذا الإجراء وهو جاهز، فقط ارسل له البارامترات التالية
username اسم المستخدم
password كلمة المرور
msg نص الرسالة
sender المرسل الذي تريدونه يظهر عنوان للرسالة مثل اسم الشركات
numbers ارقام الجوالات المراد ارسال الرسالة لهم يفصل بين الاقام بفاصلة

سيعود الإجراء بالنتيجة بنص يذكر فيها مثلا نجاح الإرسال من عدمه

كود :
Public Function [color=#FF0000]SendMessage[/color](ByVal [color=#FF0000]username [/color]As String, ByVal [color=#FF0000]password [/color]As String, ByVal [color=#FF0000]msg [/color]As String, ByVal [color=#FF0000]sender [/color]As String, ByVal [color=#FF0000]numbers [/color]As String) As String

    Dim temp As Integer = 0

    Dim req As HttpWebRequest = WebRequest.Create("http://www.mobily.ws/api/msgSend.php")
    req.Method = "POST"
    req.ContentType = "application/x-www-form-urlencoded"
    Dim postData As String = "mobile=" & username & "&password=" & password & "&numbers=" & numbers & "&sender=" & sender & "&msg=" & msg & "&applicationType=24"
    req.ContentLength = postData.Length

    Dim stOut As StreamWriter = New StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII)
    stOut.Write(postData)
    stOut.Close()

    Dim strResponse As String
    Dim stIn As StreamReader = New StreamReader(req.GetResponse().GetResponseStream())
    strResponse = stIn.ReadToEnd()
    stIn.Close()

    Select Case strResponse

        Case "1" : MessageBox.Show("لقد تمت العملية بنجاح")
        Case "2" : MessageBox.Show("إن رصيدك لدى موبايلي قد إنتهى ولم يعد به أي رسائل. (لحل المشكلة قم بشحن رصيدك من الرسائل لدى موبايلي. لشحن رصيدك إتبع تعليمات شحن الرصيد)")
        Case "3" : MessageBox.Show("إن رصيدك الحالي لا يكفي لإتمام عملية الإرسال. (لحل المشكلة قم بشحن رصيدك من الرسائل لدى موبايلي. لشحن رصيدك إتبع تعليمات شحن الرصيد")
        Case "4" : MessageBox.Show("إن إسم المستخدم الذي إستخدمته للدخول إلى حساب الرسائل غير صحيح (تأكد من أن إسم المستخدم الذي إستخدمته هو نفسه الذي تستخدمه عند دخولك إلى موقع موبايلي).")
        Case "5" : MessageBox.Show("هناك خطأ في كلمة المرور (تأكد من أن كلمة المرور التي تم إستخدامها هي نفسها التي تستخدمها عند دخولك موقع موبايلي,إذا نسيت كلمة المرور إضغط على رابط نسيت كلمة المرور لتصلك رسالة على جوالك برقم المرور الخاص بك)")
        Case "6" : MessageBox.Show("إن صفحة الإرسال لاتجيب في الوقت الحالي (قد يكون هناك طلب كبير على الصفحة أو توقف مؤقت للصفحة فقط حاول مرة أخرى أو تواصل مع الدعم الفني إذا إستمر الخطأ)")
        Case "12" : MessageBox.Show("إن حسابك بحاجة إلى تحديث يرجى مراجعة الدعم الفني")
        Case "13" : MessageBox.Show("إن إسم المرسل الذي إستخدمته في هذه الرسالة لم يتم قبوله. (يرجى إرسال الرسالة بإسم مرسل آخر أو تعريف إسم المرسل لدى موبايلي)")
        Case "14" : MessageBox.Show("إن إسم المرسل الذي إستخدمته غير معرف لدى موبايلي. (يمكنك تعريف إسم المرسل من خلال صفحة إضافة إسم مرسل)")
        Case "15" : MessageBox.Show("يوجد رقم جوال خاطئ في الأرقام التي قمت بالإرسال لها. (تأكد من صحة الأرقام التي تريد الإرسال لها وأنها بالصيغة الدولية)")
        Case "16" : MessageBox.Show("الرسالة التي قمت بإرسالها لا تحتوي على إسم مرسل. (أدخل إسم مرسل عند إرسالك الرسالة)")
        Case "17" : MessageBox.Show("لم يتم ارسال نص الرسالة. الرجاء التأكد من ارسال نص الرسالة والتأكد من تحويل الرسالة الى يوني كود (الرجاء التأكد من استخدام الدالة()")
        Case "-1" : MessageBox.Show("لم يتم التواصل مع خادم (Server) الإرسال موبايلي بنجاح. (قد يكون هناك محاولات إرسال كثيرة تمت معا , أو قد يكون هناك عطل مؤقت طرأ على الخادم إذا إستمرت المشكلة يرجى التواصل مع الدعم الفني)")
        Case "-2" : MessageBox.Show("لم يتم الربط مع قاعدة البيانات (Database) التي تحتوي على حسابك وبياناتك لدى موبايلي. (قد يكون هناك محاولات إرسال كثيرة تمت معا , أو قد يكون هناك عطل مؤقت طرأ على الخادم إذا إستمرت المشكلة يرجى التواصل مع الدعم الفني)")

        Case Else : Return strResponse.ToString()

End Function

طريقة استخدام الإجراء كالتالي
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    SendMessage(Me.txtUsername.Text, Me.txtPassword.Text, Me.txtMSG.Text, Me.txtSender.Text, Me.txtNumbers.Text)
End Sub

جربوا الاشتراك وسيعطونكم رسائل مجانية محدودة للتجربة

السلام عليكم ورحمة الله وبركاته



كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - learning.net - 16-12-12

مشكور ابو رائد
جازاك الله خيراّ


كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - @@أبورائد@@ - 16-12-12

السلام عليكم ورحمة الله وبركاته

جمعت لكم كلا الإجرائين للشركتين Mobily و Jawal
[COLOR="#FF0000"]ملاحظة: عدلت اسم الإجراء ليدل على اسم الشركة وقمت بإعادة ترتيب البارامترات لكلا الإجرائين للتتوافق مع بعض في الترتيب
[/COLOR]

عند الاشتراك لدى أي شركة سيعطونكم username و password مع عدد رسائل مجانية للتجربة

بعدها استخدموا الإجراء الذي يخصهم بارسال البارامترات التالية
username اسم المستخدم
password كلمة المرور
msg نص الرسالة
sender المرسل الذي تريدونه يظهر عنوان للرسالة مثل اسم الشركات
numbers ارقام الجوالات المراد ارسال الرسالة لهم يفصل بين الاقام بفاصلة

إجراء Mobily
كود :
#Region " Mobily SMS "
    Public Sub MobilySendMessage(ByVal username As String, ByVal password As String, ByVal sender As String, ByVal msg As String, ByVal numbers As String)

        Dim temp As Integer = 0

        Dim req As Net.HttpWebRequest = Net.WebRequest.Create("http://www.mobily.ws/api/msgSend.php")
        req.Method = "POST"
        req.ContentType = "application/x-www-form-urlencoded"
        Dim postData As String = "mobile=" & username & "&password=" & password & "&numbers=" & numbers & "&sender=" & sender & "&msg=" & msg & "&applicationType=24"
        req.ContentLength = postData.Length

        Dim stOut As IO.StreamWriter = New IO.StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII)
        stOut.Write(postData)
        stOut.Close()

        Dim strResponse As String
        Dim stIn As IO.StreamReader = New IO.StreamReader(req.GetResponse().GetResponseStream())
        strResponse = stIn.ReadToEnd()
        stIn.Close()

        Select Case strResponse

            Case "1" : MessageBox.Show("لقد تمت العملية بنجاح")
            Case "2" : MessageBox.Show("إن رصيدك لدى موبايلي قد إنتهى ولم يعد به أي رسائل. (لحل المشكلة قم بشحن رصيدك من الرسائل لدى موبايلي. لشحن رصيدك إتبع تعليمات شحن الرصيد)")
            Case "3" : MessageBox.Show("إن رصيدك الحالي لا يكفي لإتمام عملية الإرسال. (لحل المشكلة قم بشحن رصيدك من الرسائل لدى موبايلي. لشحن رصيدك إتبع تعليمات شحن الرصيد")
            Case "4" : MessageBox.Show("إن إسم المستخدم الذي إستخدمته للدخول إلى حساب الرسائل غير صحيح (تأكد من أن إسم المستخدم الذي إستخدمته هو نفسه الذي تستخدمه عند دخولك إلى موقع موبايلي).")
            Case "5" : MessageBox.Show("هناك خطأ في كلمة المرور (تأكد من أن كلمة المرور التي تم إستخدامها هي نفسها التي تستخدمها عند دخولك موقع موبايلي,إذا نسيت كلمة المرور إضغط على رابط نسيت كلمة المرور لتصلك رسالة على جوالك برقم المرور الخاص بك)")
            Case "6" : MessageBox.Show("إن صفحة الإرسال لاتجيب في الوقت الحالي (قد يكون هناك طلب كبير على الصفحة أو توقف مؤقت للصفحة فقط حاول مرة أخرى أو تواصل مع الدعم الفني إذا إستمر الخطأ)")
            Case "12" : MessageBox.Show("إن حسابك بحاجة إلى تحديث يرجى مراجعة الدعم الفني")
            Case "13" : MessageBox.Show("إن إسم المرسل الذي إستخدمته في هذه الرسالة لم يتم قبوله. (يرجى إرسال الرسالة بإسم مرسل آخر أو تعريف إسم المرسل لدى موبايلي)")
            Case "14" : MessageBox.Show("إن إسم المرسل الذي إستخدمته غير معرف لدى موبايلي. (يمكنك تعريف إسم المرسل من خلال صفحة إضافة إسم مرسل)")
            Case "15" : MessageBox.Show("يوجد رقم جوال خاطئ في الأرقام التي قمت بالإرسال لها. (تأكد من صحة الأرقام التي تريد الإرسال لها وأنها بالصيغة الدولية)")
            Case "16" : MessageBox.Show("الرسالة التي قمت بإرسالها لا تحتوي على إسم مرسل. (أدخل إسم مرسل عند إرسالك الرسالة)")
            Case "17" : MessageBox.Show("لم يتم ارسال نص الرسالة. الرجاء التأكد من ارسال نص الرسالة والتأكد من تحويل الرسالة الى يوني كود (الرجاء التأكد من استخدام الدالة()")
            Case "-1" : MessageBox.Show("لم يتم التواصل مع خادم (Server) الإرسال موبايلي بنجاح. (قد يكون هناك محاولات إرسال كثيرة تمت معا , أو قد يكون هناك عطل مؤقت طرأ على الخادم إذا إستمرت المشكلة يرجى التواصل مع الدعم الفني)")
            Case "-2" : MessageBox.Show("لم يتم الربط مع قاعدة البيانات (Database) التي تحتوي على حسابك وبياناتك لدى موبايلي. (قد يكون هناك محاولات إرسال كثيرة تمت معا , أو قد يكون هناك عطل مؤقت طرأ على الخادم إذا إستمرت المشكلة يرجى التواصل مع الدعم الفني)")

            Case Else : MessageBox.Show(strResponse.ToString())
        End Select

    End Sub
#End Region


إجراء Jawal
كود :
#Region " Jawal SMS"
    Private ArabicMessage As Boolean = True
    Private EnglishMessage As Boolean = False
    Private Sub JawalSendmessage(ByVal USER_NAM As String, ByVal PASSWRD As String, ByVal SENDER As String, ByVal MESSAGE As String, ByVal RECIEVER As String, Optional ByVal UNICOD As String = "A")
        Dim response As String = ""
        '****************************************************************
        'This link is used to send message either in arabic or in English
        '****************************************************************

        Dim url As String = "http://www.jawalsms.net/httpSmsProvider.aspx"

        '****************************************************************
        ' here are the parameters needed to send sms message
        '****************************************************************


        'Dim USER_NAM As String = User_Name
        'Dim PASSWRD As String = Pass_word
        'Dim SENDER As String = ComboBox1.SelectedItem.ToString()
        'Dim RECIEVER As String = mobilenumtxt.Text
        'Dim MESSAGE As String = messagetxt.Text
        'Dim UNICOD As String = "E"

        If EnglishMessage Then

            UNICOD = "E"
            '****************************************************************
            'this parameter is for english message
            '****************************************************************
        ElseIf ArabicMessage Then
            UNICOD = "U"
            '****************************************************************
            'this parameter  isfor arabic message
            '****************************************************************
            MESSAGE = Unicode(MESSAGE)
        End If

        Dim query As String = "username=" + USER_NAM + "&password=" + PASSWRD + "&mobile=" + RECIEVER + "&unicode=" + UNICOD + "&message=" + MESSAGE + "&sender=" + SENDER

        Try
            '****************************************************************
            'here we can make a request for the the required api website by passing parameters to it.  
            '****************************************************************
            Dim httpwc As Net.HttpWebRequest = DirectCast(Net.WebRequest.Create(url), Net.HttpWebRequest)
            httpwc.Method = "POST"
            Dim data As Byte() = System.Text.Encoding.UTF8.GetBytes(query)
            httpwc.ContentType = "application/x-www-form-urlencoded"
            httpwc.ContentLength = data.Length
            Dim stwriter As IO.Stream = httpwc.GetRequestStream()
            stwriter.Write(data, 0, data.Length)
            stwriter.Close()

            Dim wr As Net.WebResponse = httpwc.GetResponse()
            stwriter = wr.GetResponseStream()

            Dim streader As New IO.StreamReader(stwriter)
            response = streader.ReadLine()
            streader.Close()
            stwriter.Close()

            MessageBox.Show(response)

            '****************************************************************
            'This result returned by the response to the request and it takes one of these values
            '****************************************************************

            Select Case response
                Case "0"
                    MessageBox.Show("تم الارسال بنجاح")
                    Exit Select
                Case "101"
                    MessageBox.Show("معاملات خاطئة")
                    Exit Select
                Case "104"
                    MessageBox.Show("قد يكون اسم المستخدم او كلمة المرور غير صحيح ")
                    Exit Select
                Case "105"
                    MessageBox.Show("بطاقة غير متوفرة")
                    Exit Select
                Case "106"
                    MessageBox.Show("unicode خاطئ")
                    Exit Select
                Case "107"
                    MessageBox.Show("اسم المرسل غير مسموح")
                    Exit Select
                Case "108"
                    MessageBox.Show("اسم المرسل غير موجود")
                    Exit Select
                Case Else
                    MessageBox.Show("هناك خطاء في الارسال ")
                    Exit Select


            End Select
        Catch ex As Exception
        End Try

        MessageBox.Show("النقاط الحالية= " & getpoints(USER_NAM, PASSWRD))

    End Sub
    Private Function Unicode(ByVal messg As String) As String
        Dim arabicmessage As String = String.Empty

        Dim i As Integer = 0
        While i < messg.Length
            arabicmessage += ToChar(System.Convert.ToChar(messg.Substring(i, 1)))
            System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
        End While

        Return arabicmessage
    End Function
    Private Function ToChar(ByVal ch As Char) As String
        Dim class1 As New System.Text.UnicodeEncoding()
        Dim msg As Byte() = class1.GetBytes(System.Convert.ToString(ch))

        Return ToHeDecimal(msg(1) & msg(0).ToString("X"))
    End Function
    Private Function ToHeDecimal(ByVal messg As String) As String
        Dim temp As String = String.Empty

        Select Case messg.Length
            Case 1
                temp = "000" + messg
                Exit Select
            Case 2
                temp = "00" + messg
                Exit Select
            Case 3
                temp = "0" + messg
                Exit Select
            Case 4
                temp = messg
                Exit Select
        End Select

        Return temp
    End Function

    Protected Function getpoints(ByVal User_Name As String, ByVal Pass_word As String) As String
        Dim url As String = "http://www.jawalsms.net/api/getBalance.aspx"
        Dim str As String = url + "?username=" + User_Name + "&password=" + Pass_word
        Try
            Dim httpwc As Net.HttpWebRequest = DirectCast(Net.WebRequest.Create(str), Net.HttpWebRequest)
            Dim httpwr As Net.HttpWebResponse = DirectCast(httpwc.GetResponse(), Net.HttpWebResponse)
            Dim streader As New IO.StreamReader(httpwr.GetResponseStream())
            Dim balancestr As String = streader.ReadToEnd().ToString()
            streader.Close()
            httpwr.Close()
            Return balancestr
        Catch EX As Exception
            Return ""
        End Try
    End Function
#End Region


استخدام الإجرائين
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    MobilySendMessage(Me.txtUsername.Text, Me.txtPassword.Text, Me.txtSender.Text, Me.txtMSG.Text, Me.txtNumbers.Text)


    JawalSendmessage(Me.txtUsername.Text, Me.txtPassword.Text, Me.txtSender.Text, Me.txtMSG.Text, Me.txtNumbers.Text [color=#FF0000],"A"[/color])
    ' [color=#FF0000]"A"[/color] تعني الرسالة اللغة العربية
    ' [color=#FF0000]"E"[/color] تعني الرسالة باللغة الإنجليزية
    ' هذا البارامتر لجوال اختياري، الإفتراضي اللغة العربية

End Sub
السلام عليكم ورحمة الله وبركاته



كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - أم عبد العزيز - 19-12-12

جزاك الله كل خير على المعلومات القيمة ..

ولكن كيف أضيف ملفات aip (التي أنشأتها شركة موبايلي) إلى ملفات مشروعي ؟ هل أعمل باك أب أو ماذا ؟

2/ لكل عميل رقم جوال يخزن في جدول قاعدة البيانات ، وأريد أن أسهل العمل على المستخدم ، بحيث لا يضطر في كل مرة إلى إدخال الأرقام المراد الإرسال إليها ، فقط يحدد اسم مجموعة معينة من الموظفين (من compobox) ويرسل إليهم رسالة جماعية ..
كيف أعطي أمر في الفيجوال بأن يجعل الأرقام الموجودة في جدول معينة ، والمدخلة على شكل 05511111111 بأن تكون في خانة الإرسال على شكل :
9665511111111 ، 966552222222
(بحيث يكون بينهم فاصلة ) ؟؟


وجزاكم الله كل خير


كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - @@أبورائد@@ - 20-12-12

السلام عليكم ورحمة الله وبركاته

الإجرائين السابقين هي الـ api .

السلام عليكم ورحمة الله وبركاته



كيف أعمل برنامج لإرسال رسائل sms بالvb.net ؟ - أم عبد العزيز - 21-12-12

أقصد أن البرنامج اشتغل معي ، واستطعت الإرسال من خلاله ،

ولكن أريد أن أجعل هذه الواجهات في مشروعي أنا ، وليست في مشروع لوحدها ؟؟ فكيف ذلك ؟

وشكرا