Javascriptでimap経由でメールを取得するスケルトン

JavaScriptでIMAP経由でメールを取得するスケルトンは以下のようになります。

// IMAPクライアントライブラリをインポート
const ImapClient = require('emailjs-imap-client').default;

// IMAPサーバーの設定
const config = {
  host: 'your_imap_host', // IMAPサーバーのホスト名
  port: 993, // IMAPサーバーのポート番号 (通常は993)
  ssl: true, // SSL/TLSを使用するかどうか
  user: 'your_email@example.com', // メールアドレス
  password: 'your_password', // パスワード
  authMethods: ['XOAUTH2'] // 認証方式
};

// IMAPクライアントのインスタンスを作成
const client = new ImapClient(config.host, config.port, {
  useSecureTransport: config.ssl,
  auth: {
    user: config.user,
    pass: config.password,
    method: 'XOAUTH2'
  }
});

// 接続
async function connect() {
  try {
    await client.connect();
    console.log('IMAPサーバーに接続しました');
    await openMailbox('INBOX'); // 受信トレイを開く
  } catch (error) {
    console.error('接続エラー:', error);
  }
}

// メールボックスを開く
async function openMailbox(mailbox) {
  try {
    await client.selectMailbox(mailbox);
    console.log(`${mailbox}を開きました`);
    await fetchMessages(); // メッセージを取得
  } catch (error) {
    console.error('メールボックスを開くエラー:', error);
  }
}

// メッセージを取得
async function fetchMessages() {
  try {
    const messages = await client.listMessages('INBOX', '1:*', ['uid', 'flags', 'envelope']);
    console.log(`メッセージ数: ${messages.length}`);

    for (const message of messages) {
      console.log(`UID: ${message.uid}`);
      console.log(`件名: ${message.envelope.subject}`);
      // 必要に応じてメッセージの本文を取得する処理を追加
    }

    await client.close(); // クローズ
  } catch (error) {
    console.error('メッセージ取得エラー:', error);
  }
}

// 実行
connect();

補足:

  • emailjs-imap-client は、Node.jsでIMAPクライアントを実装するためのライブラリです。
  • config オブジェクトには、IMAPサーバーへの接続に必要な情報を設定します。
  • connect() 関数は、IMAPサーバーに接続し、受信トレイを開きます。
  • fetchMessages() 関数は、受信トレイからメッセージを取得し、UIDと件名を表示します。
  • メッセージの本文を取得するには、client.fetchData() メソッドを使用します。
  • エラー処理は必要に応じて追加してください。
  • 認証方式は、必要に応じて変更してください。
  • このスケルトンはあくまで基本的なものであり、実際の使用には、エラー処理、認証方式、メッセージのフィルタリングなど、さまざまなカスタマイズが必要になります。
  • XOAUTH2認証を使用する場合は、事前にOAuth 2.0の設定が必要です。
  • セキュリティのため、パスワードはハードコードせずに、環境変数などから読み込むようにしてください。
  • このコードは、2025/3/28時点での情報に基づいています。ライブラリのバージョンアップなどにより、動作が変わる可能性があります。

参考:

GitHub – emailjs/emailjs-imap-client: Low-level JS IMAP client for all …

node.jsでGmail APIを使ってメール一覧や本文を取得するサンプル

IMAP、POP、SMTP | Gmail | Google for Developers

Node.js・Nodemailerでメールを送信する方法 – ベアメールブログ

JavaScriptでメール送信機能を実装する9つの方法 – Japanシーモア

フロントJavaScriptからメール送信できるSmtpJS (v3) – Qiita

Node.js でメールの受信 #imap – Qiita

メールをJavaScriptだけで送信できるようになるEmailJSの使い方

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です