Добавление вложения в электронное письмо с использованием C # - PullRequest
41 голосов
/ 17 февраля 2011

Я использую следующий код из этого ответа Отправка электронной почты в .NET через Gmail .Проблема в том, что я добавляю вложение в электронное письмо.Как добавить вложение с помощью кода ниже?

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);
}

Заранее спасибо.

Ответы [ 4 ]

85 голосов
/ 17 февраля 2011

Объект message, созданный из вашего вызова метода new MailMessage, имеет свойство .Attachments.

Например:

message.Attachments.Add(new Attachment(PathToAttachment));
16 голосов
/ 17 февраля 2011

Используя класс Attachment, предложенный в 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);
8 голосов
/ 30 апреля 2013

Исправьте ваш код следующим образом

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

надеюсь, это поможетВы.

Рики

0 голосов
/ 23 сентября 2017

Ответ в одну строку:

mail.Attachments.Add(new System.Net.Mail.Attachment("pathToAttachment"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...