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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • JayzTwoCents

    JayzTwoCents

    26 AĞUSTOS 2012
  • PremiumBeat.com - Royalty Free Music

    PremiumBeat.

    16 Kasım 2008