56 votes

Ajouter une pièce jointe à un e-mail en utilisant C#

J'utilise le code suivant de cette réponse Envoi d'e-mails en .NET via Gmail . Le problème que j'ai est d'ajouter une pièce jointe à l'e-mail. Comment ajouter une pièce jointe à l'aide du code ci-dessous ?

 using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
    {
        Subject = subject,
        Body = body
    })
{
    smtp.Send(message);
}

Merci d'avance.

106voto

JYelton Points 14014

L'objet message créé à partir de votre appel de méthode new MailMessage .Attachments .

Par exemple:

 message.Attachments.Add(new Attachment(PathToAttachment));

19voto

Matten Points 9394

Utilisation de la classe Attachment telle que proposée dans le MSDN :

 // Create  the file attachment for this e-mail message.
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
// Add time stamp information for the file.
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
// Add the file attachment to this e-mail message.
message.Attachments.Add(data);

9voto

rickymannar Points 91

Corrige ton code comme ceci

 System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment("your attachment file");
mail.Attachments.Add(attachment);

http://csharp.net-informations.com/communications/csharp-email-attachment.htm

J'espère que cela vous aidera.

branlant

1voto

Hasan Nazeer Points 31

Astuce : le corps du message est écrasé par le chemin du fichier de pièce jointe si la pièce jointe est ajoutée après, alors attachez d'abord et ajoutez le corps plus tard

mail.Attachments.Add(new Attachment(file));

mail.Body = "corps";

0voto

Rob Salmon Points 1

Une réponse en une ligne :

 mail.Attachments.Add(new System.Net.Mail.Attachment("pathToAttachment"));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X