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

  • Cartoonium

    Cartoonium

    11 NİSAN 2011
  • disneychannel

    disneychanne

    19 ŞUBAT 2006
  • ParryGripp

    ParryGripp

    12 AĞUSTOS 2006