Comment recuperer son User-Agent avec du code vb.net ?

Traitée Comment recuperer son User-Agent avec du code vb.net ?

  • jeudi 8 mars 2012 21:26
     
     
    J'ai écris une application sous visual studio 2008 en vb et framework 3.5. Elle permet d'envoyer un mail.
    Avec certain FAI j'avais un retour d'erreur : 550 spam
    Après de nombreux essais j'ai rajouté dans le header un User-Agent et ça marche.
    Mais je ne suis pas entièrement satisfait car le User-Agent est en dur dans le code. Je souhaiterais récupérer le User-Agent où s'execute mon application et ainsi de generer le header dynamiquement.
    Je ne sais pas comment le faire.

    Merci

    Voici mon code

           Friend SmtpClient As System.Net.Mail.SmtpClient

           If Not IsDBNull(Base.PARAMETRES.Rows(0)("PRM_SMTP")) Then
                SmtpClient.Host = Base.PARAMETRES.Rows(0)("PRM_SMTP")
            End If
            If Not IsDBNull(Base.PARAMETRES.Rows(0)("PRM_PORT")) Then
                SmtpClient.Port = Base.PARAMETRES.Rows(0)("PRM_PORT")
            End If
            SmtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials

    .../....

      Private Sub BtnEnvoyer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEnvoyer.Click
            Dim message As System.Net.Mail.MailMessage
            Dim pos As Integer = 1
            Dim pos_deb As Integer = 1
            Dim phase As String = ""
            SmtpClient = New System.Net.Mail.SmtpClient()
            message = New System.Net.Mail.MailMessage
            Try
                If Me.ValidateChildren() Then
                    phase = "De"
                    message.From = New System.Net.Mail.MailAddress(Me.TxtDe.Text)
                    phase = "Pour"
                    While pos <= Me.TxtPour.Text.Length
                        pos = InStr(pos_deb, Me.TxtPour.Text, ";")
                        If pos = 0 Then
                            pos = Me.TxtPour.Text.Length + 1
                        End If
                        If pos > pos_deb Then
                            message.To.Add(New System.Net.Mail.MailAddress(Me.TxtPour.Text.Substring(pos_deb - 1, pos - pos_deb)))
                            pos_deb = pos + 1
                        End If
                    End While
                    phase = "Copie"
                    If ChkCopie.Checked = True Then
                        message.CC.Add(New System.Net.Mail.MailAddress(Me.TxtDe.Text))
                    End If
                    phase = "Accuse"
                    If ChkAccuse.Checked = False Then
                        message.DeliveryNotificationOptions = Net.Mail.DeliveryNotificationOptions.None
                    Else
                        message.DeliveryNotificationOptions = Net.Mail.DeliveryNotificationOptions.OnSuccess Or Net.Mail.DeliveryNotificationOptions.OnFailure
                        message.Headers.Add("Disposition-Notification-To", message.From.ToString)
                    End If
                    phase = "Objet"
                    message.Subject = Me.LblSujet.Text
                    phase = "Corps"
                    message.Body = Me.RichTxtCorp.Text
                    If Me.LblPiece.Text <> "" Then
                        message.Attachments.Add(New System.Net.Mail.Attachment(Me.LblPiece.Text))
                    End If

                    SmtpClient.Send(message)
                    Me.Tag = 1
                End If


            Catch ex As Exception
                MessageBox.Show("Zone <" & phase & "> : " & ex.Message)

            Finally
                message.Attachments.Dispose()
                message.Dispose()
                If Me.Tag = 1 Then
                    Me.Close()
                End If
            End Try
        End Sub

Toutes les réponses

  • vendredi 9 mars 2012 08:00
    Modérateur
     
     

    Bonjour,

    Je souhaiterais récupérer le User-Agent où s'execute mon application
    Qu'appellez vous par User-Agent ? Comment récupérer le user agent de votre application ? Dans la base de registre ? Fichier de configuration ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • vendredi 9 mars 2012 08:17
     
     

    Bonjour

    Voilà la ligne que j'ai ajouté

     message.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.0; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2")

    je n'ai pas beaucoup de connaissance en matiere de mail mais je crois que c'est ca qu'on appelle le MUA.

    Sur ma machine c'est  "Mozilla/5.0 (Windows NT 6.0; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2".Mais j'imagine bien que sur d'autres machines c'est autre chose (selon la config) et je voudrais donc le recuperer de façon dynamique dans mon code. Donc pas de fichier de configuration.

    Je ne sais pas comment faire en vb.net. Mais ce n'est peut-etre pas possible ?

    Cordialement

  • vendredi 9 mars 2012 08:54
    Modérateur
     
     Traitée

    Bonjour,

    Essayez-le code suivant : http://social.msdn.microsoft.com/Forums/ar/netfxnetcom/thread/76919fe9-1b2e-4b62-a12f-769e55b90cc9

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • vendredi 9 mars 2012 21:18
     
     

    Bonsoir

    C'est bien ce que je cherchais.

    Merci

    Cordialement