SORU
28 Temmuz 2009, Salı


iTextSharp - Gönderme-bellek pdf E-posta eki olarak

Burada bir kaç soru sordum ama hala sorunlar yaşıyorum. Eğer yanlış Şifremi ne yaptığımı söylerseniz memnun olurum. ASP.NET bir sayfada yukarıdaki kod çalıştırmak ve almak "Erişemiyor Kapalı bir Dere".

var doc = new Document();

MemoryStream memoryStream = new MemoryStream();

PdfWriter.GetInstance(doc, memoryStream);
doc.Open();
doc.Add(new Paragraph("First Paragraph"));
doc.Add(new Paragraph("Second Paragraph"));

doc.Close(); //if I remove this line the email attachment is sent but with 0 bytes 

MailMessage mm = new MailMessage("username@gmail.com", "username@gmail.com")
{
    Subject = "subject",
    IsBodyHtml = true,
    Body = "body"
};

mm.Attachments.Add(new Attachment(memoryStream, "test.pdf"));
SmtpClient smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    Credentials = new NetworkCredential("username@gmail.com", "my_password")
};

smtp.Send(mm); //the "Cannot Access a Closed Stream" error is thrown here

!! Teşekkürler!

DÜZENLEME:

Sadece yardımcı birini arıyorum bu sorunun cevabını, kod göndermek bir pdf dosyası ekli bir e-posta olmadan fiziksel olarak oluşturmak dosya aşağıda (teşekkürler "ichiban" IM ve Brianng):

var doc = new Document();
MemoryStream memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(doc, memoryStream);

doc.Open();
doc.Add(new Paragraph("First Paragraph"));
doc.Add(new Paragraph("Second Paragraph"));

writer.CloseStream = false;
doc.Close();
memoryStream.Position = 0;

MailMessage mm = new MailMessage("username@gmail.com", "username@gmail.com")
{
    Subject = "subject",
    IsBodyHtml = true,
    Body = "body"
};

mm.Attachments.Add(new Attachment(memoryStream, "filename.pdf"));
SmtpClient smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    Credentials = new NetworkCredential("username@gmail.com", "password")

};

smtp.Send(mm);

CEVAP
28 Temmuz 2009, Salı


Denedin:

PdfWriter writer = PdfWriter.GetInstance(doc, memoryStream);

// Build pdf code...

writer.CloseStream = false;
doc.Close();

// Build email

memoryStream.Position = 0;
mm.Attachments.Add(new Attachment(memoryStream, "test.pdf"));

Eğer hafızam beni yanıltmıyorsa doğru, bu önceki bir projede benzer bir sorun çözüldü.

http://forums.asp.net/t/1093198.aspx bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • hitcreatormusic2

    hitcreatormu

    21 Mayıs 2010
  • sonia989

    sonia989

    26 EKİM 2006