मैं अपने एसएमटीपी सर्वर के आने वाले ई-मेल को पर Synapse पर आने वाले ई-मेल को डीकोड करने के लिए TMimeMess का उपयोग करता हूं।Synapse TMimeMess का उपयोग करके एमआईएम डीकोडिंग पर भारी रैम उपयोग को कैसे कम करें?
मुझे पता चला कि 50 एमबी एमआईएम संदेश ( संलग्नक के साथ सरल पाठ) को डीकोड करने के लिए, टीएमआईएममेस ने 600-800 एमबी मेमोरी का इस्तेमाल किया था।
डिकोडिंग यहाँ कोड:
FMimeMsg.Header.DecodeHeaders(FMimeMsg.MessagePart.Lines);
FMimeMsg.MessagePart.DecomposeParts;
ExtractPartsFromMess(FMimeMsg.MessagePart);
...
procedure ExtractPartsFromMess(AMimePart: TMimePart);
var i: integer;
begin
if AMimePart.GetSubPartCount = 0 then
Begin
if (AMimePart.PrimaryCode = MP_TEXT) then
Begin
AMimePart.DecodePart;
FBody.Add(string(ReadStrFromStream(AMimePart.DecodedLines,AMimePart.DecodedLines.Size)));
end
else if (AMimePart.PrimaryCode = MP_BINARY) then
Begin
if AMimePart.FileName <> '' then
Begin
AMimePart.DecodePart;
AMimePart.DecodedLines.SaveToFile(FPathToIncomingFolder+AMimePart.FileName);
end;
end;
end
else
Begin
for i:=0 to AMimePart.GetSubPartCount-1 do
Begin
ExtractPartsFromMess(AMimePart.GetSubPart(i));
end;
end;
end;
धन्यवाद।
क्या आपने इस मुद्दे के बारे में Synpse लेखकों से संपर्क किया है? –
मैंने इस संदेश को synalist-public में पोस्ट किया है, लेकिन किसी ने जवाब नहीं दिया। – krtl
इसके बजाय इंडी एमआईएम डीकोडर का उपयोग करना संभव है? – krtl