Отправка вложения, выбранного пользователем по почте - PullRequest
1 голос
/ 04 апреля 2019

Проблема :

Я хочу, чтобы пользователи могли отправлять мне письма с вложениями.Они могут выбрать файл с помощью кнопки ввода файла в формате HTML.Проблема в том, что он не может найти файл.Работает нормально без вложений.

Я получаю эту ошибку

Файл C: Программные файлы (x 86) ExpressGIPENGLISH. Не удается найти IIS .pptx.

У кого-нибудь есть идеи??

Что я пробовал :

Попытка сначала загрузить файл в это место, но все равно не работает.

Кнопка ввода файла

<INPUT type=file id=File1 name=File1 runat="server" >&nbsp; </asp:Content>

C # Код

System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(System.IO.Path.GetFileName(File1.PostedFile.FileName));

MailMessage mail = new MailMessage("d***t@gmail.com", "d***t@gmail.com");

SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Port = 587;              
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("d***t@gmail.com", "");

mail.BodyEncoding = Encoding.UTF8;
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
mail.Subject = TxtOnderwerp.Text;
mail.Body = TxtMail.Text;
mail.Body += Environment.NewLine + "Van  " + TxtNaam.Text;
mail.Body += Environment.NewLine + " Deze persoon is te bereiken op het mail adres " + TxtEmail.Text + " of op het nummer " + TxtTel.Text;
mail.Attachments.Add(attachment);

client.Send(mail);

Результат : Я хочу, чтобы пользователь мог отправить мне письмо с вложением, которое он выбрал сам, на его компьютере.И это я могу получить почту и открыть вложение.Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 04 апреля 2019

Ниже приведен полный пример добавления файлов в сообщение электронной почты в виде вложения без их записи на диск.

using (SmtpClient client = new SmtpClient())
using (MailMessage message = new MailMessage())
{
    client.Host = "host.com";
    client.Port = 25;
    client.Timeout = 10000;
    client.EnableSsl = false;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.UseDefaultCredentials = false;
    client.Credentials = new NetworkCredential("user", "pass");

    message.From = new MailAddress("email@from.nl", "VDWWD");
    message.To.Add(new MailAddress("email@to.nl"));
    message.Subject = "Your uploaded files";
    message.IsBodyHtml = true;
    message.Body = "<html><head></head><body><font face=\"arial\" size=\"2\"><b>The files you uploaded.</b></font></body></html>";

    //loop all the uploaded files
    foreach (var file in FileUpload1.PostedFiles)
    {
        //add the file from the fileupload as an attachment
        message.Attachments.Add(new Attachment(file.InputStream, file.FileName, MediaTypeNames.Application.Octet));
    }

    //send mail
    try
    {
        client.Send(message);
    }
    catch (Exception ex)
    {
        //handle error
    }
}
0 голосов
/ 04 апреля 2019

Вам необходимо сохранить опубликованный файл на своем сервере, прежде чем вы сможете добавить его в качестве вложения. Вы также можете добавить вложение из MemoryStream, так что это может быть другим способом без необходимости сохранения самого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...