2024-01-04 10:23:26 +00:00
|
|
|
use anyhow::Context;
|
2024-01-03 14:21:51 +00:00
|
|
|
|
|
|
|
mod common;
|
2024-01-04 10:23:26 +00:00
|
|
|
use common::fragments::*;
|
2024-01-03 14:21:51 +00:00
|
|
|
|
|
|
|
fn main() {
|
|
|
|
common::aerogramme_provider_daemon_dev(|imap_socket, lmtp_socket| {
|
2024-01-04 10:23:26 +00:00
|
|
|
connect(imap_socket).context("server says hello")?;
|
|
|
|
|
|
|
|
capability(imap_socket, Extension::Move).context("check server capabilities")?;
|
|
|
|
login(imap_socket, Account::Alice).context("login test")?;
|
|
|
|
create_mailbox(imap_socket, Mailbox::Archive).context("created mailbox archive")?;
|
|
|
|
select(imap_socket, Mailbox::Inbox, None).context("select inbox")?;
|
|
|
|
|
2024-01-03 14:21:51 +00:00
|
|
|
lmtp_handshake(lmtp_socket).context("handshake lmtp done")?;
|
2024-01-04 10:23:26 +00:00
|
|
|
lmtp_deliver_email(lmtp_socket, Email::Basic).context("mail delivered successfully")?;
|
2024-01-03 14:21:51 +00:00
|
|
|
|
|
|
|
noop_exists(imap_socket).context("noop loop must detect a new email")?;
|
2024-01-04 10:23:26 +00:00
|
|
|
r#move(imap_socket, Selection::FirstId, Mailbox::Archive).context("message from inbox moved to archive")?;
|
2024-01-03 14:21:51 +00:00
|
|
|
|
|
|
|
unselect(imap_socket)
|
|
|
|
.context("unselect inbox while preserving email with the \\Delete flag")?;
|
2024-01-04 10:23:26 +00:00
|
|
|
select(imap_socket, Mailbox::Archive, Some(1)).context("select archive")?;
|
|
|
|
fetch_rfc822(imap_socket, Selection::FirstId, Email::Basic).context("check mail exists")?;
|
2024-01-03 14:21:51 +00:00
|
|
|
logout(imap_socket).context("must quit")?;
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
})
|
|
|
|
.expect("test fully run");
|
|
|
|
}
|