C#.NET
public TKMP.Net.MailData[] NoReadMails(TKMP.Net.PopClient PopClient , string[] ReadUIDList)
{
System.Collections.ArrayList mails = new System.Collections.ArrayList();
foreach(TKMP.Net.MailData mail in PopClient.MailDatas)
{
bool read = false;
foreach(string UID in ReadUIDList)
{
if(mail.UID.Equals(UID))
{
read = true;
break;
}
}
if(!read)
{
mails.Add(mail);
}
}
TKMP.Net.MailData[] mailarray = (TKMP.Net.MailData[])mails.ToArray(typeof(TKMP.Net.MailData));
return mailarray;
}
VB.NET
Public Function NoReadMails(ByVal PopClient As TKMP.Net.PopClient, _
ByVal ReadUIDList() As String) As TKMP.Net.MailData()
Dim mails As New System.Collections.ArrayList
Dim mail As TKMP.Net.MailData
For Each mail In PopClient.MailDatas
Dim read As Boolean = False
Dim UID As String
For Each UID In ReadUIDList
If mail.UID.Equals(UID) Then
read = True
Exit For
End If
Next UID
If Not read Then
mails.Add(mail)
End If
Next mail
Dim mailarray As TKMP.Net.MailData() = _
CType(mails.ToArray(GetType(TKMP.Net.MailData)), TKMP.Net.MailData())
Return mailarray
End Function
VB.NETのコードはC#.NETを元に「
C#.NET to VB.NET Translator」によって作成したものです
次のサンプルは接続済みTKMP.Net.PopClient PopClientクラスと読み出し済みのUIDリストを渡すと、 未読メールを表すTKMP.Net.MailDataクラスの配列を返します。 事前準備として、
・POPサーバーへの接続
・既読メールのUIDリストの読み出し
が必要です。
メール読み出し後には、何らかの方法で既読メールのUIDリストを保存する必要があります。
※サーバーによって既読メールにはヘッダに「Status: RO」を追加するものもありますが、 全てのサーバーがサポートしているわけではありません。