Mailto

Résolu
Signaler
Messages postés
23
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
9 mai 2010
-
Messages postés
23
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
9 mai 2010
-
            Bonjour,

        Je suis donc en VB.net et je veux utiliser un mailto pour envoyer le contenu d'un fichier texte. J'arrive à insérer le contenu dans le corps de mon message mais il ne prend pas en compte la mise en page, en particulier les retours à la ligne du contenu de mon fichier texte, il me met tout à la suite, ce qui est particuliérement génant.
     Donc je voudrais savoir si il y a un moyen d'intégrer le contenu exact d'un fichier ou alors si je peux insérer grace à une code des retours à ligne au moment de l'utilisation de mon texte.
           

8 réponses

Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
Salut,

Voici un code que j'ai bien commenté. Il te montrera comment envoyer un mail. L'avantage, c'est que tu peux envoyer un message au format HTML avec diverses options comme la priorité de l'email, recevoir un message si la remise de l'email a réussie ou échouée, ... etc





Dim
 objMessage As System.Net.Mail.MailMessage
Dim objAdrExp As System.Net.Mail.MailAddress
Dim objAdrRec As System.Net.Mail.MailAddress
Dim objSMTPClient As System.Net.Mail.SmtpClient

Try
     objMessage =   New  System.Net.Mail.MailMessage()
     objAdrExp  = New System.Net.Mail.MailAddress( "xxx@orange.fr" )
     objAdrRec  =   New  System.Net.Mail.MailAddress("xxx@gmail.com")

     ' ADRESSE MAIL DE L EXPEDITEUR
     objMessage.From  =  objAdrExp

     ' ADRESSE MAIL DU DESTINATAIRE
     objMessage.To.Add(objAdrRec)

     ' Sujet du message
     objMessage.Subject =   "Ceci est un test"

     ' Définit la priorité du message
     objMessage.Priority  = Net.Mail.MailPriority.High

     ' Définit la notification lors de la remise d'un message
     objMessage.DeliveryNotificationOptions =  Net.Mail.DeliveryNotificationOptions.OnFailure

     ' Autorise ou non le html dans le corps du message
     objMessage.IsBodyHtml =  True

     ' Définit le message dans le corps
     ' 
 permet d'aller à ligne en HTML
     objMessage.Body  = "Test

Test

Test"

     ' Client pour envoyer le mail par smtp
     objSMTPClient =   New  System.Net.Mail.SmtpClient()

     ' Nom du Host, normalement smtp.FAI.fr
     objSMTPClient.Host  =  "smtp.free.fr"

     ' Port à utiliser
     objSMTPClient.Port  =   25

     ' Envoi du mail
     objSMTPClient.Send(objMessage)

     MsgBox("L'email a été envoyé avec succès")

    ' En cas d'erreur
Catch ex As Exception
     ' Affiche la raison de l'échec de l'envoi du mail
     MsgBox("Exception : " & ex.Message)
End Try




++

Fauve

<hr size ="2" width="100%" />
Pensez : Réponse Acceptée 
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Sans connaitre la méthode que tu utilises pour faire cet envoi, difficile de te dire où ça ne va pas.
Tes retours à la ligne sont-ils des Cr ou des CrLf ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
23
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
9 mai 2010

Merci de ta réponse.
Mon fichier texte est créé en dehors du code. Ensuite pour remplir le corps de email je lis le contenu du fichier texte,qui ici s'appelle mail.txt.
Voilà du code:

Dim monStreamReader As StreamReader = &_

New StreamReader(Server.MapPath("mail/mail.txt"))

Dim ligne As String = ""

Do             

 ligne = ligne & Chr(10) & monStreamReader.ReadLine

Loop Until monStreamReader.ReadLine Is Nothing

Dim command As String = String.Format("mailto:{0}?subject={1}&body={2}", &_ AdresseEmail, "Offre de travail", ligne)

 System.Diagnostics.Process.Start(command)
Messages postés
23
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
9 mai 2010

le Chr(10) est un test d'insertion de retour à la ligne. Mais ça ne marche pas bien sur.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Re
Chr(10) = vbLf

Essaye avec :
vbCr = Chr(13)
vbCrLf = Chr(13) & Chr(10)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Euh ... Dans ta commande, je ne vois pas "Ligne" : Comment l'insères-tu dans le mail ?
Tu ne peux pas insérer un texte en ligne de commande pour deux raisons simples :
- Le fichier comporte des espaces qui sont interdits
Voir éventuelle traduction avec des fonction genre URLEncode qui vont transformer les caractères non normés en %20 par exemple pour l'espace ... (% suivi du code hexadémal du caractère)
- Une ligne de commande a des limites de taille (je ne sais pas combien, mais cela peut paraitre faible par rapport à la taille de ton fichier.

Il faut, à mon avis, que tu t'orientes vers les objets dédiés aux envois de mail, le mailto ne suffira pas dans ton cas, je le crains.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
23
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
9 mai 2010

               "Ligne se trouve à la fin de ma commande quand je définis le mail.
  Il ne veut rien savoir des chr(13) ou autres codes que tu m'as donné.
               Mais c'est bien ce que je craignais. Je vais utiliser les objets. D'ailleurs c'est plus intéressant et ça évite l'obligation que l'utilisateur ai un outils de messagerie (on ne sait jamais), mais mon patron voulais que j'utilise ça.
               
   Quoiqu'il en soit je te remercie pour ton aide et ton temps.

                                               Psygho
                
Messages postés
23
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
9 mai 2010

      Merci beaucoup. ça me fait une bonne explication, et c'est exactement ce qu'il me fallait.
       ++
               Psygho