0

http://www.delphigroups.info/2/93/183240.htmlを見てみると、Lee J Coo が TidSmtp と idmessage を使用して電子メールで進行状況追跡フォームを送信する例を示しています。

コードをエミュレートしようとすると、特に大きな添付ファイルの場合、TIdSmtp 送信操作中にプログレス バーを更新するための Delphi 6 の例が必要であることを示唆するconnection closed gracefully別の投稿を見たというメッセージが何よりも先に送信されます。Remy Lebeau

何かが間違っているかどうかはわかりませんTIdAttachmentFile.Create(Idmessage1.MessageParts,)

私はこれに力を入れていますが、savetostreamの代わりにsavetofileを使用するなどの提案を見ると、これconnection closed gracefullyはかなり一般的なようで、問題についてあまり多くの洞察を与えることはできませんが、誰かが経験からわかるかもしれません.

4

1 に答える 1

0

他の質問への回答で述べたように、Indy 10には、メモリやファイルシステムスペースをまったく無駄にすることなく、エンコードするバイト数を追跡​​するために使用できるTIdEventStreamクラスがユニットにあります。同じことをするプライベートクラスもユニットにあります。そのクラスをプロジェクトのコードにコピーできます。IdGlobalTIdMessage.SaveToStream()TIdCalculateSizeStreamIdMultipartFormDataStream

いずれかのクラスの使用で問題が発生した場合は、具体的な詳細を提供する必要があります。

そうは言っても、SMTPサーバーに接続する前に、接続した後ではなく、推定サイズを取得するために電子メールを「エンコード」する必要があります。エンコードに時間がかかる場合は、SMTPサーバーがタイムアウトしてSend()、電子メールを送信するために電話をかける前に接続を閉じる可能性があります(これにより、再度エンコードされ、長くはないにしても、同じくらいの時間がかかります。最初の一時エンコード)。

于 2012-09-11T21:57:55.330 に答える