IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

envoi html avec images par mail [Débutant]


Sujet :

C#

  1. #1
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut envoi html avec images par mail
    bonjour à toutes et à tous,
    malgré les exemples, je ne parviens pas à envoyer du html
    contenant des images, par mail.
    pouvez-vous m'aider ?
    initialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void Form1_Load( object sender, EventArgs e )	{	
    	webBrowser1.DocumentText=
    		"<html>"+
    		"	<body>"+
    		"		texte début<br />"+
    		"		<img src='D:/Mes documents/...' />"+	// exemple
    		"		<img src='D:/Mes documents/...' />"+	 
    		"		<br />texte fin"+
    		"	</body>"+
    		"</html>";
    }
    lancement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    private void button1_Click( object sender, EventArgs e )	{
    	button1.BackColor=Color.Coral;
    	MailMessage mail=new MailMessage();
    	mail.BodyEncoding=Encoding.GetEncoding("UTF-8");
    	mail.HeadersEncoding=Encoding.GetEncoding("UTF-8");
    	mail.SubjectEncoding=Encoding.GetEncoding("UTF-8");
    	mail.From=new MailAddress( "a.b@free.fr" );		// mal bidon
    	mail.To.Add( "a.b@free.fr" );
    	mail.Subject="Sujet";
    	mail.IsBodyHtml=true;
    	SmtpClient smtp=new SmtpClient( "smtp.free.fr" );
    	smtp.Port=int.Parse( "25" );
    	HtmlDocument wTmp=webBrowser1.Document;
    	int max=wTmp.GetElementsByTagName("IMG").Count;
    	String nomImg;
    	for ( int numImg=0; numImg<max; numImg ++ )
    	{	AlternateView htmlView=
    			AlternateView.CreateAlternateViewFromString
    				(	"<img src='cid:img"+numImg.ToString()+"'>", 
    					null,
    					"text/html"
    				);
    		nomImg=wTmp.GetElementsByTagName("IMG")[numImg].
    				GetAttribute("SRC").Replace("file:///","");
    		nomImg=nomImg.Replace("%20"," ");	// sinon plante
    		wTmp.GetElementsByTagName("IMG")[numImg].SetAttribute
    				( "SRC", "cid:img"+numImg.ToString() );
    		LinkedResource lrimage = new LinkedResource(nomImg);
    		lrimage.ContentId = "img"+numImg.ToString();
    		htmlView.LinkedResources.Add(lrimage);
    		mail.AlternateViews.Add(htmlView);
    	}
    	AlternateView plainView =
    			AlternateView.CreateAlternateViewFromString	
    				(wTmp.Body.InnerHtml, Encoding.UTF8, "text/plain");
    	mail.AlternateViews.Add(plainView);
    	mail.Body=wTmp.Body.InnerHtml;
    	smtp.Send( mail );
    	button1.BackColor=Color.Aqua;
    }
    les images ne s'affichent pas, et le mail est "en texte"
    je me plante où ?

    merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Pour commencer, tu peux remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    smtp.Port=int.Parse( "25" );
    Par ça :
    C'est plus efficace...

    Et aussi quand je rajoute une image je le fait comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monHtmlView.LinkedResources.Add(new LinkedResource("C:\toto.jpg", MediaTypeNames.Image.Jpeg) { ContentId = "img_0", TransferEncoding = TransferEncoding.Base64 });
    Les fautes d'orthographes sus-citées sont déposées auprès de leurs propriétaires respectifs. Aucune responsabilité n'est engagée sur la lisibilité du message ou les éventuels dommages qu'il peut engendrer.

  3. #3
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par PatteDePoule Voir le message
    smtp.Port=25;
    c'est sur.
    j'ai simplifié le programme originel pour poser la question
    c'était int.Parse( textbox.Text ); et j'ai zappé.

    Citation Envoyé par PatteDePoule Voir le message
    quand je rajoute une image je le fait comme ceci :
    sauf que je n'ajoute pas d'images, elles existent
    déjà dans le webbrowser utilisé.
    ( le "webBrowser1.DocumentText=...;" est lui
    aussi une simplification pour poser la question )

    merci de ton intervention.

  4. #4
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    bon, en changeant un peu de manière de faire, ça baigne
    déjà, il doit y avoir la même chose dans le
    contentId et le src="cid/:.."

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoie de fichier html avec image par email
    Par goomie dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 26/05/2007, 21h47
  2. Réponses: 4
    Dernier message: 02/04/2007, 18h17
  3. [Mail] Envoie news HTML avec images
    Par matt44 dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2007, 15h23
  4. Réponses: 4
    Dernier message: 06/03/2006, 16h14
  5. [GD] Envoyer une image générée avec GD par mail
    Par firejocker dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/12/2005, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo