Skip to content Skip to sidebar Skip to footer

Sending An Attachment That The User Chose With Mail

The problem: I want that users can send me mails with attachments. They can choose the file with an input file button in html. The problem is that it can't find the file. It works

Solution 1:

Below a complete example to add files to an email message as attachment without writing them to the disk.

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 filesforeach (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 mailtry
    {
        client.Send(message);
    }
    catch (Exception ex)
    {
        //handle error
    }
}

Solution 2:

You will need to save the posted file to your server before you can add it as an attachment. You can also add the attachment from a MemoryStream, so this could be another way without having to save the file itself.

Post a Comment for "Sending An Attachment That The User Chose With Mail"