Did I understand correctly: you're downloading an email with attachments using pop3 protocol and storing everything in your database.
Are attachments also in the database or what?
To force browser to display 'Save' dialog use something like this:
private void SendResponse(string downloadName, byte[] responseBytes)
{
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Type", "binary/octet-stream");
response.AddHeader("Content-Disposition", "attachment; filename=" +
downloadName + "; size=" + responseBytes.Length.ToString());
response.BinaryWrite(responseBytes);
response.Flush();
response.End();
}
In this example file content is in byte[], but it can easily be modified to use Streams.