LoginSignup
9
12

More than 3 years have passed since last update.

Node.js でメールの受信

Last updated at Posted at 2017-11-26

Node.js で imap サーバーからメールを受信する方法です。
ライブラリーは、inbox を使います。

sudo npm install inbox
imap_get.js
#! /usr/bin/node
// ---------------------------------------------------------------
//  imap_get.js
//
//                  Nov/26/2017
//
// ---------------------------------------------------------------
var inbox = require("inbox")

const server = "imap.mail.yahoo.co.jp"
const user = "xxxxxx"
const password = "yyyyyy"

var client = inbox.createConnection(false, server, {
    secureConnection: true,
    auth:{
        user: user,
        pass: password
    }
})

client.connect()

// ---------------------------------------------------------------
client.on("connect", function()
{
    console.log ("*** connected ***")
    client.openMailbox("INBOX", function(error, info)
    {
    if(error) throw error;

    client.listMessages(-10, function(err, messages)
        {
        messages.forEach(function(message)
            {
            const uid = message.UID
            console.log(uid)
            console.log("Name: " + message.from.name)
            console.log("Address: " + message.from.address)
            console.log("Title: " + message.title)

//          client.createMessageStream(uid).pipe(process.stdout, {end: false})
            });

        client.close()
        })
    })
})

// ---------------------------------------------------------------
client.on('close', function (){
    console.log('*** disconnected! ***');
})

// ---------------------------------------------------------------

次の環境で動作を確認しました。

$ uname -a
Linux iwata 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ node --version
v14.8.0
9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12