Продолжаем рассмотрение вопросов связанных с отправкой почты в .Net Framework.
Так как данная задача является актуальной не только для Web приложений, но и для обычных программ, то эта статья также открывает и новую рубрику статей, которая будет посвящена программированию уже на «обычном» C#.
Необходимо сразу отметить, что создание и отправка писем с вложениями возможно только с использованием класса MailMessage, который мы уже рассматривали в предыдущих статьях.
Для того чтобы вложение, следует задействовать класс Attachment, который отвечает за вложения в электронных письмах.
Прикрепление вложения осуществляется следующим образом:
1 2 |
string file = "C:\\file.jpg"; Attachment attach = new Attachment(file, MediaTypeNames.Application.Octet); |
После прикрепления можно добавить информацию о файле вложения с помощью класса ContentDisposition. Например, дату его создания, изменения и открытия.
1 2 3 4 |
ContentDisposition disposition = attach.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(file); disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); disposition.ReadDate = System.IO.File.GetLastAccessTime(file); |
Непосредственно перед отправкой письма следует связать файл вложения с письмом. Для этого служит свойство Attachments класса MailMessage.
1 |
message.Attachments.Add(attach); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//Создание письма System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.mysite.com"); client.Credentials = new System.Net.NetworkCredential("MyLogin", "MyPassword"); MailMessage message = new MailMessage("mymail@site.com", "adress@yandex.ru","test","test"); //Прикрепление файла string file = "C:\\file.jpg"; Attachment attach = new Attachment(file, MediaTypeNames.Application.Octet); //Добавление дополнительной информации о файле вложения ContentDisposition disposition = attach.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(file); disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); disposition.ReadDate = System.IO.File.GetLastAccessTime(file); //Связь файла вложения с письмом и отправка письма message.Attachments.Add(attach); client.Send(message); |
Добавить комментарий