System.Web.Mail and PDF getting corrupted workaround

I was troubleshooting an issue where I was sending an email using .NET 1.1 and attaching PDF files. The PDF files where getting an error when trying to open the attachment.  Here is what was displayed in Adobe reader.  "There was an error processing a page. A file I/O error has occurred".  Thanks a bunch to Dave Wanta, creator of http://ASPNetEmail.com for providing a great resource about System.Web.Mail ( http://www.systemwebmail.com ).  A similar example worked in ASP.NET 2.0, comparing email headers provided the clues it was how the attachment was getting encoded.  I found the answer in the article listed below.

This article explains it.
http://systemwebmail.com/faq/4.4.8.aspx 

The bolded code is what you have to alter

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.Mail" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

protected void Page_Load(object sender, EventArgs e)
    {

    string FilePath = Request.PhysicalApplicationPath + “/c.pdf”;
    MailMessage msgMail = new MailMessage();

    msgMail.To = “steve@changethisBefore.com“;
    msgMail.From = “steve@changethisBefore.com“;
    msgMail.Subject = “Your Favorite Subject”;
    msgMail.Body = @”Some Text goes here”;
    msgMail.Attachments.Add(new MailAttachment(FilePath, MailEncoding.UUEncode));
    SmtpMail.Send(msgMail);
    Response.Write(“Thank you.”); 
}

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
   

   
   

    </form>
</body>
</html>

Hope this helps

Steve Schofield
Microsoft MVP – IIS

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: