कुल आकार संलग्नक के स्ट्रिंग प्लस आकार की लंबाई होगी।
यदि आप इसे स्ट्रीम का उपयोग करके उचित ईमेल प्रारूप में क्रमबद्ध कर रहे हैं, तो आप आसानी से लंबाई प्राप्त करने के लिए Stream.Length
संपत्ति का उपयोग कर सकते हैं।
इसके बजाय
byte[]
का उपयोग कर स्मृति में अनुलग्नकों को स्टोर करने की
, मैं सुझाव है कि आप FileInfo
का उपयोग संलग्नक की लंबाई प्राप्त करने के लिए और फिर एक FileStream
सीधे पाइप के लिए एक लक्ष्य ईमेल फ़ाइल या नेटवर्क धारा में लगाव डेटा का उपयोग करें:
using System.IO;
...
FileInfo fi = new FileInfo(@"c:\path\to\file");
long fileSize = fi.Length;
...
// assuming List<string> for attachment file names
foreach (string attachFile in attachments)
{
using (FileStream afs = new FileStream(attachFile))
{
byte[] buffer = new byte[1024];
while (!afs.EndOfstream)
{
int br = afs.Read(buffer, 0, 1024);
// assume targetStream is the NetworkStream or FileStream that you want to write to
targetStream.Write(buffer, 0, br);
}
}
}
मुझे लगता है कि अनुलग्नकों और शायद शरीर की सामग्री की तुलना में, हेडर इत्यादि जैसे अन्य सभी आकारों को बल्कि नगण्य होना चाहिए। –
यह सच है, लेकिन मुझे सटीक होने की आवश्यकता है! यानी 1 बाइट नीचे ईमेल किया जाना चाहिए, 1 बाइट ओवर फैक्स किया जाना चाहिए। मैं तारों के आकार को अनदेखा नहीं कर सकता – woggles