Comment recuperer son User-Agent avec du code vb.net ?
-
jeudi 8 mars 2012 21:26J'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:00Modé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:54Modérateur
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- Proposé comme réponse Ciprian DuduialaOwner vendredi 9 mars 2012 09:16
- Marqué comme réponse Ciprian DuduialaOwner mardi 13 mars 2012 07:07
-
vendredi 9 mars 2012 21:18
Bonsoir
C'est bien ce que je cherchais.
Merci
Cordialement

