jhayMe Ответов: 1

Как отправить вложение электронной почты в C# без перезагрузки страницы.


Я уже сделал простую отправку электронной почты с вложением в C#, и она работает, но ей нужно перезагрузить страницу. Как я могу отправить электронное письмо с вложением без перезагрузки страницы?

Я пробовал использовать jquery, вызывающий контроллер из представления:

[$. post (url, {attachment : attachment }, function(data){}); ]

но у меня возникли проблемы с URL-адресом и ограничением браузеров, когда я получаю назначение файла на части контроллера.

есть ли другой способ сделать это? без перезагрузки всей страницы для вложения.

Спасибо!

Что я уже пробовал:

$. post (url, {attachment : attachment }, function(data){});

это возвращает null для параметра контроллера.

F-ES Sitecore

Google "ajax file upload", и вы найдете множество примеров того, как это сделать.

jhayMe

должен ли я сначала загрузить его?

ZurdoDev

Чтобы отправить электронное письмо, вы должны запустить код на стороне сервера, чтобы сделать это без обратной отправки, вы используете метод ajax() jquery.

Er. Puneet Goel

- Эй! У вас есть решение или все еще нужна помощь ?

jhayMe

все еще нуждаюсь. Получение файла на контроллер больше не является проблемой, но отправка деталей из представления на контроллер вместе с ним ( например , email TO, email From, body of email и т. д.) - Это то, с чем у меня есть проблема.

Er. Puneet Goel

Пожалуйста, поделитесь своим кодом, что вы уже сделали?

1 Ответов

Рейтинг:
1

Saumendra Pattanaik

if (attachmentFilename != null)
{
    Attachment attachment = new Attachment(attachmentFilename, MediaTypeNames.Application.Octet);
    ContentDisposition disposition = attachment.ContentDisposition;
    disposition.CreationDate = File.GetCreationTime(attachmentFilename);
    disposition.ModificationDate = File.GetLastWriteTime(attachmentFilename);
    disposition.ReadDate = File.GetLastAccessTime(attachmentFilename);
    disposition.FileName = Path.GetFileName(attachmentFilename);
    disposition.Size = new FileInfo(attachmentFilename).Length;
    disposition.DispositionType = DispositionTypeNames.Attachment;
    message.Attachments.Add(attachment);                
}