2018-12-16 21:39:43 +01:00
|
|
|
# IMAP Module
|
|
|
|
| Since | Origin / Contributor | Maintainer | Source |
|
|
|
|
| :----- | :-------------------- | :---------- | :------ |
|
2019-01-13 22:01:57 +01:00
|
|
|
| 2015-03-12 | [AllAboutEE](https://github.com/AllAboutEE) | [AllAboutEE](https://github.com/AllAboutEE) | [imap.lua](../../lua_modules/email/imap.lua) |
|
2018-12-16 21:39:43 +01:00
|
|
|
|
|
|
|
This Lua module provides a simple implementation of an [IMAP 4rev1](http://www.faqs.org/rfcs/rfc2060.html) protocol that can be used to read e-mails.
|
|
|
|
|
|
|
|
|
|
|
|
### Require
|
|
|
|
```lua
|
|
|
|
imap = require("imap.lua")
|
|
|
|
```
|
|
|
|
|
|
|
|
### Release
|
|
|
|
```lua
|
|
|
|
imap = nil
|
|
|
|
package.loaded["imap"] = nil
|
|
|
|
```
|
|
|
|
|
|
|
|
## imap.response_processed()
|
|
|
|
Function used to check if IMAP command was processed.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.response_processed()`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
None
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
The response process status of the last IMAP command sent. If return value is `true` it means the command was processed.
|
|
|
|
|
|
|
|
|
|
|
|
## imap.config()
|
|
|
|
Initiates the IMAP settings.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.config(username, password, tag, [debug])`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
- `username`: IMAP username. For most e-mail providers e-mail address is used as username.
|
|
|
|
- `password`: IMAP password.
|
|
|
|
- `tag`: IMAP tag. With current implementation any tag like "t1" should work.
|
|
|
|
- `debug`: (boolean) if set to true entire conversation between the ESP8266 and IMAP server will be shown. Default setting is false.
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
`nil`
|
|
|
|
|
|
|
|
## imap.login()
|
|
|
|
Logs into a new email session.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.login(socket)`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
- `socket`: IMAP TCP socket object created using `net.createConnection`
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
`nil`
|
|
|
|
|
|
|
|
## imap.get_most_recent_num()
|
|
|
|
Function to check the most recent email number. Should only be called after `examine` function.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.get_most_recent_num()`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
None
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
The most recent email number.
|
|
|
|
|
|
|
|
## imap.examine()
|
|
|
|
IMAP examines the given mailbox/folder. Sends the IMAP EXAMINE command.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.examine(socket, mailbox)`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
- `socket`: IMAP TCP socket object created using `net.createConnection`
|
|
|
|
- `mailbox`: E-mail folder name to examine like example `"INBOX"`
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
`nil`
|
|
|
|
|
|
|
|
## imap.get_header()
|
|
|
|
Function that gets the last fetched header field.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.get_header()`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
None
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
The last fetched header field.
|
|
|
|
|
|
|
|
## imap.fetch_header()
|
|
|
|
Fetches an e-mails header field e.g. SUBJECT, FROM, DATE.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.fetch_header(socket, msg_number, field)`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
- `socket`: IMAP TCP socket object created using `net.createConnection`
|
|
|
|
- `msg_number`: The email number to read e.g. 1 will read fetch the latest/newest email
|
|
|
|
- `field`: A header field such as SUBJECT, FROM, or DATE
|
|
|
|
#### Returns
|
|
|
|
`nil`
|
|
|
|
|
|
|
|
## imap.get_body()
|
|
|
|
Function to get the last email read's body.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.get_body()`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
None
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
The last email read's body.
|
|
|
|
|
|
|
|
## imap.fetch_body_plain_text()
|
|
|
|
Sends the IMAP command to fetch a plain text version of the email's body.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.fetch_body_plain_text(socket, msg_number)`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
- `socket`: IMAP TCP socket object created using `net.createConnection`
|
|
|
|
- `msg_number`: The email number to obtain e.g. 1 will obtain the latest email.
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
`nil`
|
|
|
|
|
|
|
|
## imap.logout()
|
|
|
|
Sends the IMAP command to logout of the email session.
|
|
|
|
|
|
|
|
#### Syntax
|
|
|
|
`imap.logout(socket)`
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
- `socket`: IMAP TCP socket object created using `net.createConnection`
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
`nil`
|
|
|
|
|
|
|
|
#### Example
|
2019-01-13 22:01:57 +01:00
|
|
|
Example use of `imap` module can be found in [read_email_imap.lua](../../lua_examples/email/read_email_imap.lua) file.
|