Envoi d'un mail avec pièce jointe

Flashy Warrior Messages postés 17 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 1 décembre 2008 - 15 déc. 2005 à 17:38
Rikess Messages postés 3 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 12 mai 2010 - 23 mars 2010 à 16:45
Bonjour, j'utilise System.Web.Mail pour envoyer des mails avec pièce jointe.

Seul petit problème : quand la pièce jointe pèse plus de 125 ko (approximativement), je la retrouve bien dans le mail, mais elle ne pèse alors plus que 0 kilo. Aussi, quand j'essaie d'ouvrir ces fichiers (en l'occurence des fichiers XLS), Excel ouvre un fichier vide. Précision : le nom du fichier joint est correct !!!

Le même code fonctionne parfaitement avec les fichiers de moins de 125 ko !!!

ci-joint le code que j'utilise :

MailMessage email = new MailMessage();
email.From = UsersData.getFrom();
email.To = hostFP.getEmail();
email.Bcc = UsersData.getMailBcc();
email.Subject = UsersData.getMailSubject();
email.Body = UsersData.getMailBody();
SmtpMail.SmtpServer = UsersData.getSmtpServer();
email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", UsersData.getSmtpUser());
email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", UsersData.getSmtpPassword());
try
{
email.Attachments.Add(new MailAttachment(filePath, System.Web.Mail.MailEncoding.UUEncode));
System.Web.Mail.MailEncoding.Base64));
System.Web.Mail.MailEncoding.UUEncode));
SmtpMail.Send(email);
string s = DateTime.Now.ToString("T") + " : Fin du traitement en tache de fond de l'export excel, mail envoyé à " + email.To;
if (UsersData.getMailBcc() != string.Empty)
s += " et copie envoyée à " + email.Bcc;
hostFP.debug(s);
}
catch (Exception ex)
{
hostFP.debug(DateTime.Now.ToString("T") + " : Problème lors de l'envoi du mail. Veuillez consulter l'erreur ci-dessous.");
hostFP.debug(ex.Message);
}

Toute aide est la bienvenue !!!!

2 réponses

Kleino Messages postés 5 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 30 mars 2009
2 avril 2009 à 16:47
Bjr á tous,
je suis débutant et aimerais savoir pourquoi mon code ne marche pas.
Je voudrais imprimer ou bien envoyer un formulaire que j´ai crée
Quand j´imprime le format A4 est vide, quand je veux envoyer le formulaire par mail ca me donne bcp d´erreur (Error    1    The type or namespace name 'MailFormat' could not be found (are you missing a using directive or an assembly reference?)   
Voici mon code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;
using System.Web;
using System.Net;

namespace Projekt
{
    public partial class Document1 : Form
    {

        /// <summary>
        /// Permet de gérer l'envoi de mail.
        /// </summary>
        public class MailManager
        {
            private string _SmtpServer = "smtp.free.fr";
            private MailFormat _MailFormat = MailFormat.Text;
            private string _From = null;
            private string _To = null;
            private string _Subject = null;
            private string _Body = null;
            private string[] _AttchFile = { @"C:\temp\CV.doc", @"C:\temp\LM.doc" };

            /// <summary>
            /// Permet de définir l'adresse du serveur SMTP.
            /// </summary>
            public string SmtpServer
            {
                set
                {
                    this._SmtpServer = value;
                }
            }

            /// <summary>
            /// Permet de définir le format du mail.
            /// True => HTML, false => Texte.
            /// </summary>
            public bool BodyFormat
            {
                set
                {
                    if (value)
                        this._MailFormat = MailFormat.Html;
                    else
                        this._MailFormat = MailFormat.Text;
                }
            }

            /// <summary>
            /// Permet de définir l'adresse électronique de l'expéditeur.
            /// </summary>
            public string From
            {
                set
                {
                    this._From = value;
                }
            }

            /// <summary>
            /// Permet de définir l'adresse électronique du destinataire.
            /// </summary>
            public string To
            {
                set
                {
                    this._To = value;
                }
            }

            /// <summary>
            /// Permet de définir l'objet du message.
            /// </summary>
            public string Subject
            {
                set
                {
                    this._Subject = value;
                }
            }

            /// <summary>
            /// Permet de définir le corps du message.
            /// </summary>
            public string Body
            {
                set
                {
                    this._Subject = value;
                }
            }

            /// <summary>
            /// Permet de définir un tableau de fichiers à joindre au message.
            /// </summary>
            public string[] Attach
            {
                set
                {
                    this._AttchFile = value;
                }
            }

            /// <summary>
            /// Permet d'obtenir une instance de gestionnaire de mails.
            /// </summary>
            public MailManager()
            {
            }

            /// <summary>
            /// Permet d'envoyer un message électronique.
            /// </summary>
            /// <returns>Retourne un booléen indiquant si le message a bien été émis.</returns>
            public bool IsMailSent()
            {
                bool blnSuccess = true;
                MailMessage objMessage = new MailMessage();

                try
                {
                    SmtpMail.SmtpServer = this._SmtpServer;
                    objMessage.BodyFormat = this._MailFormat;
                    objMessage.From = this._From;
                    objMessage.To = this._To;
                    objMessage.Subject = this._Subject;
                    objMessage.Body = this._Body;

                    // Attache au message chacun des éventuels fichiers.
                    if (this._AttchFile != null)
                    {
                        foreach (string str in this._AttchFile)
                        {
                            objMessage.Attachments.Add(new MailAttachment(str, MailEncoding.Base64));
                        }
                    }

                    // Envoit le message.
                    SmtpMail.Send(objMessage);
                }
                catch (Exception)
                {
                    blnSuccess = false;
                }
                finally
                {
                    objMessage = null;
                }
                return blnSuccess;
            }

            private void button1_Click(object sender, EventArgs e)
            {
                smtp.SendAsyncCancel();
            }

            private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                e.PageBounds.Contains(new Rectangle(0, 0, 500, 500));

            }
            private void btnImprimer_Click(object sender, EventArgs e)
            {

                PrintDialog printDialog1 = new PrintDialog();
                printDialog1.Document = printDocument1;
                DialogResult result = printDialog1.ShowDialog();
                if (result == DialogResult.OK)
                {
                    printDocument1.Print();

                }

            }
        }
    }
}
       
    
Merci d´avance
Kleino  

       

       
   

           

    
0
Rikess Messages postés 3 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 12 mai 2010
23 mars 2010 à 16:45
(Error 1 The type or namespace name 'MailFormat' could not be found (are you missing a using directive or an assembly reference?)


Normal , il te manque :

using System.Net.Mail;

Pour les autres erreurs, c'est difficile à dire sans les voir
0
Rejoignez-nous