E-posta yoluyla sabit disk sürücüsüne kaydetmeden tüm StringList'i nasıl ekleyebilirim? Ek sınırlarının farkındayım ..StringList'i E-posta ile Ek Gönder - Indy
cevap
yerine TIdAttachmentFile ait TIdAttachmentMemory kullanabilirsiniz:
StringList := TStringList.Create;
StringList.Append('foo');
StringList.Append('bar');
MemoryStream := TMemoryStream.Create;
StringList.SaveToStream(MemoryStream);
MemoryStream.Position := 0;
IdMessage := TIdMessage.Create(nil);
IdAttachmentMemory := TIdAttachmentMemory.Create(IdMessage.MessageParts,MemoryStream);
Ayrı bir 'TMemoryStream' kullanmak yerine,' TIdAttachmentMemory' öğesini herhangi bir 'CopyFrom' parametresi değeri olmadan yapılandırabilir ve sonra' OpenLoadStream() 'yöntemini kullanarak' SaveToStream() 'biçiminde bir' TStream' elde edebilirsiniz. . Alternatif olarak, bunun yerine 'StringList.Text' yerine' TIdAttachtachmentMemory' yapıcısına geçebilirsiniz. –
Neden dosyayı dosyaya kaydetmiyor ve dosyayı ek olarak göndermiyorsunuz?
Aksi halde yapılamaz :) –
Sabit Disk için erişim haklarına ihtiyacınız var .. Uygulamanıza karmaşıklık katıyor ... CPU için daha fazla çaba: eski programcılar yavaş makinelere sahipti, böylece her döngü sayar :) –
evet ben Bunu yapmak için tembel bir yol olduğunu kabul ediyorum, ama karışıklık olsa bile işe yarayacak :-) –
StringList.Text portalını kullanabilirsiniz. Bu özellik okumak ve yazmak ve böylece bir dize paramater (bir nesneyi geçmek yerine yerine) dizesi içeriğini iletmek için kullanılabilir.
Bir örnek gösterebilir misiniz? :) –
Size e-posta kullanarak bir örnek veremem ancak temel olarak SenderStringList.Text öğenizi bir dize değişkenine koyarsınız. Sonra bu dize posta yoluyla gönderirsiniz ve alıcı bir StringList oluşturur ve dizede okur (ReceiverStringList.Text: = variable). –
Evet, ancak bu soru bir e-posta eki hakkında bir değişkene bir dize listesi metin koymak değil :) –
İkincil TIdText çalıştı mı? Muhtemelen CharSet'i UTF-16 ya da UCS-2 gibi bir şeye ayarlamalısınız ve belki de 80'inci karakterin etrafına sarılacaktı ... Ama belki de "sadece çalışır". TIdText, TStrings göndermek için yapılmak üzere ayarlanmıştır - bu yüzden onu kullanmayı deneyin. –