メールの受信

Jawk で JavaMail を使って、POP/IMAP サーバからメールを受信できます。 送信については、こちらをご覧ください。

JavaMail やメールサーバについては、 こちらをご覧ください。

Jawk については、こちらをご覧ください。

POPサーバからメールを受信

受信プログラム例

次のプログラム pop.jawk は POP サーバからメールを受信するプログラムの例です。 未読のメールの件数と、その件名(Subject)を表示します。 POP サーバは localhost で、 ユーザ名が user@mailtest.com で、 パスワードが pass の場合です。

・pop.jawk
BEGIN {
  props = java.lang.System.getProperties()
  session = javax.mail.Session.getDefaultInstance(props, null)
  store = session.getStore( "pop3" )
  store.connect("localhost", "user@mailtest.com", "pass")

  folder = store.getFolder( "INBOX" )
  folder.open( javax.mail.Folder.READ_ONLY )
  term = new javax.mail.search.FlagTerm(\
    new javax.mail.Flags( Flag.SEEN ), false)
  mlist = folder.search(term)
  print mlist.length()
  for (i = 0; i < mlist.length(); i++) {
    print i + 1, mlist[i].getSubject()
  }
  folder.close(false)
}

補助クラス

Jawk から javax.mail.Flags.Flag.SEEN を直接参照できないので、 次の Flag.java を使って参照します。

・Flag.java
public class Flag {
  public static final javax.mail.Flags.Flag SEEN
     = javax.mail.Flags.Flag.SEEN;
}

Windows で受信

Windows での実行例

C:\jawk に Flag.java を置いて、 C:\jawk\Flag.class を作ります。

C:\jawk>javac -cp mail.jar Flag.java

作成した Flag.class と、 上のプログラム例の pop.jawk と、 ダウンロードした mail.jar と、 jawk.0_14.jar と、 次の jawkf.bat の 5 つのファイルを C:\jawk フォルダに置きます。

・jawkf.bat
@echo off
set CP=.;
set CP=%CP%C:\jawk\jawk.0_14.jar;
set CP=%CP%C:\jawk\mail.jar;
java -cp "%CP%" org.jawk.Awk -f %1

以下は、実行例です。

C:\jawk>jawkf.bat pop.jawk
2
1 てすと
2 Re: てすと

IMAP サーバからメール受信

IMAP サーバからメールを受信する場合は、 pop.jawk

  store = session.getStore( "pop3" )
  store = session.getStore( "imap" )
に変更します。

テスト用サーバ

POP/IMAP サーバには次のものを使いました。 Windows で使える POP/IMAP/SMTP サーバです。

hMailServer (英語)

ページの右側の、Quick Download の hMailServer 5.0 - Build 326 のリンクからダウンロードしてください。

関連リンク


次は… Jawk で Excel
Jawk で良いんじゃない?
Jawk を使ってみる
Jawk で YAML
Jawk で SQLite
Jawk でメール
  ≫メールを送信
  ≫メールを受信
Jawk で Excel

他の Java のクラスを使った例は、 こちらをご覧ください。


アフィリエイトでのご支援を歓迎しています




関連書籍

【Amazon】


【セブンアンドワイ ヤフー店】



【XMLinux ホームページ】
Copyright © 2009 HANAI Mitsuru. All rights reserved.
E-mail: xmlinux2004 @yahoo.co.jp