private void DownloadFile(string msgSequenceNumber, string format) { try { // initialize exchange client NetworkCredential credential = new NetworkCredential(txtUsername.Text, Session["Password"].ToString(), txtDomain.Text); Aspose.Email.Exchange.ExchangeClient client = new Aspose.Email.Exchange.ExchangeClient(txtHost.Text, credential); lblMessage.ForeColor = Color.Green; lblMessage.Text = "Successfully connected to Microsoft Exchange Server.<br><hr>"; // get the message MemoryStream stream = new MemoryStream(); MailMessage msg = client.FetchMessage(msgSequenceNumber); if (format == "eml") msg.Save(stream, MessageFormat.Eml); else msg.Save(stream, MessageFormat.Msg); stream.Position = 0; byte[] msgBytes = new byte[stream.Length]; stream.Read(msgBytes, 0, (int)stream.Length); Response.Clear(); Response.Buffer = true; Response.AddHeader("Content-Length", msgBytes.Length.ToString()); Response.AddHeader("Content-Disposition", "attachment; filename=Message." + format); Response.ContentType = "application/octet-stream"; Response.BinaryWrite(msgBytes); Response.End(); } catch (Exception ex) { lblMessage.ForeColor = Color.Red; lblMessage.Text = "Error: " + ex.Message; } }