次の API を使用すると、Microsoft Exchange Online、Microsoft Exchange Server 2013、または Office 365 を使用してメッセージを読んだり送信したりすることができます。
- ServerUrl: Character
Exchange Server の URL。空の場合は、API は [ UserName ] に基づいてサーバーを探します。
- UserName: Character
Exchange Server で定義されているユーザーの電子メール。
- Password: Character
- AttachDir: Character
ここに添付ファイルが保存されます。空の場合は、添付ファイルはダウンロードされません。
- Count: Numeric
[ NewMessages ] プロパティに応じた、メッセージの合計数または未読メッセージの数。
- NewMessages: bool
True: (既定) 未読の電子メールだけが読み取られます。
False: すべての電子メールが読み取られます。
- SetProperty(Character key, Character value)
プロパティおよび関連付けられている値を設定できます。たとえば、Exchange Server のバージョンを設定するために使用できます。
- ErrCode: Numeric
- ErrDescription: Character
- Login()
Exchange Server との接続を開始します。
- Logout()
Exchange Server との接続を終了します。
- Receive(MailMessage): Numeric
サーバーからメッセージをダウンロードします。成功すると、0 を返します。既定では、'Inbox' フォルダからメッセージをダウンロードします。
- Send(MailMessage): Numeric
- Delete(MailMessage): Numeric
- MarkAs(MailMessage、IsRead): Numeric
IsRead = true: メッセージに開封済みのマークを付けます。IsRead = false: メッセージに未読のマークを付けます。
- GetMailMessage(MsgId、Boolean FetchEntireMessage、MailMessage): Numeric
MsgId が指定されている MailMessage を取得します。FetchEntireMessage は、MailMessage 全体 (件名、本文、添付ファイル) をサーバーからダウンロードする必要があるのかどうかを示します。
- ChangeFolder(Character): Numeric
次の Receive() 操作のフォルダを変更します。サブフォルダを参照するには、バックスラッシュを使用する必要があります (例: 'Folder1\Subfolder11\Subfolder111')。
コード |
メッセージ
|
0 |
Ok |
5 |
Could not change folder |
10 |
Could not send message |
11 |
No messages to receive |
15 |
Invalid Attachment |
16 |
Could not save attachment |
22 |
Error receiving message |
24 |
Authentication Error |
27 |
Mail Message with Id not found |
新しい電子メールの受信例:
Event 'ReceiveMails'
Do 'Login'
if (&GXMailExchange.ErrCode = 0)
&MailMessage = new()
do while (&GXMailExchange.Receive(&MailMessage) = 0)
&MailMessageSDT.Subject = &MailMessage.Subject
&MailMessageSDT.From = Format(!"%1 (%2)", &MailMessage.From.Name, &MailMessage.From.Address)
if (not &MailMessage.Text.IsEmpty())
&MailMessageSDT.Body = &MailMessage.Text
else
&MailMessageSDT.Body = &MailMessage.HTMLText
endif
&MailMessageSDT.DateReceived = &MailMessage.DateReceived
&MailMessageSDT.DateSent = &MailMessage.DateSent
for &attach in &MailMessage.Attachments
&MailMessageSDT.Attachments.Add(&attach.Trim())
endfor
//開封済みとしてマーク
&GXMailExchange.MarkAs(&MailMessage, true)
//メッセージを削除
//&GXMailExchange.Delete(&MailMessage)
&MailMessages.Add(&MailMessageSDT)
&MailMessageSDT = new()
&MailMessage = new()
enddo
else
msg(!"Error: " + &GXMailExchange.ErrDescription)
endif
Endevent
Sub 'Login'
&GXMailExchange.SetProperty(ExchangeVersion.Property, &ExchangeVersion)
&GXMailExchange.ServerUrl = &ServerUrl.Trim()
&GXMailExchange.UserName = &UserName.Trim()
&GXMailExchange.Password = &Password.Trim()
&GXMailExchange.AttachDir = &AttachDir.Trim()
&GXMailExchange.NewMessages = &FetchNewMessagesOnly
&GXMailExchange.Login()
EndSub
入力値の説明
- &GXMailExchange 変数データタイプは、GXMailExchange (外部オブジェクト) です。
GeneXus X Evolution 3 Upgrade 4 の .NET ジェネレーター
Java Generator では、JavaMail 実装を使用します。
|