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

  • Facebook Developers

    Facebook Dev

    24 ŞUBAT 2009
  • MrChiCity3

    MrChiCity3

    14 NİSAN 2008
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009