আমি এখানে বেশ কয়েকটি প্রশ্ন জিজ্ঞাসা করেছি কিন্তু এখনও সমস্যা আছে। আমি যদি আমার কোডটিতে আমি কী ভুল করছি তা যদি আমাকে বলতে পারেন তবে আমি প্রশংসা করব। আমি একটি এএসপি.নেট পৃষ্ঠা থেকে উপরের কোডটি চালাচ্ছি এবং "একটি বন্ধ স্ট্রিম অ্যাক্সেস করতে পারি না" get
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
ধন্যবাদ !!!
সম্পাদনা:
এই প্রশ্নের উত্তর খুঁজতে কাউকে সাহায্য করার জন্য, ফাইলটি শারীরিকভাবে তৈরি না করেই কোনও ইমেলের সাথে সংযুক্ত একটি পিডিএফ ফাইল প্রেরণের কোডটি নীচে রয়েছে (ইচিবান এবং ব্রায়ংকে ধন্যবাদ):
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);