2016-09-27 13 views
-1

Indyを使用して、To,CcBccフィールドにあるすべての電子メールアドレスを抽出するには、TIdMessage?これらのフィールドには複数のアドレスが含まれている可能性があるため、それらを解析する必要がありますが、そのための既成関数はありませんでした(多分私はそれを逃したでしょうか?)。Indy TIdMessageオブジェクトからすべての電子メールアドレスを抽出する方法は?

答えて

5

あなたは明らか

TIdMessage documentation:

TIdMessage.BccList

TIdMessage.CCList

TIdMessage.Recipients
は、メッセージの受信者を識別します読んでいません。

property Recipients: TIdEmailAddressList;

説明
受信者はメッセージの受信者を識別するTIdEmailAddressItem値を格納するために使用TIdEMailAddressList特性です。受信者がメッセージのカーボンコピーを受信するにはCCListを使用してください。受信者がメッセージのブラインドカーボンコピーを受信するには、BCCListを使用します。

これらのプロパティはすべて、アドレスを取得できるTIdEmailAddressListです。

これは、Google検索ではIndy TIdMessageの2番目の項目です。例えば

:インディのドキュメントがwithキーワードをたくさん使用していること

function GetEmailAddresses(const Email: TIdMessage): TStringList; 
var 
    Item: TIdEmailAddressItem; 
begin 
    Result := TStringList.Create; 
    for Item in Email.Recipients do Result.Add(Item.Address); 
    for Item in Email.CcList do Result.Add(Item.Address); 
    for Item in Email.BccList do Result.Add(Item.Address); 
end; 

注意。
便利ですが、using with is a very bad ideaと私はそれをどうしても避けてください。

+0

ありがとうございましたjohan私はそれを逃しています:(しかし、私はGoogleのプライバシーの問題のためにGoogleを使用しないでください;)と私はおそらくstackoverflowで間違ったキーワードを使用する!とにかくおかげさまで – loki

関連する問題