mirror of
https://github.com/pimalaya/himalaya.git
synced 2026-06-17 21:37:55 +08:00
refactor builders and sync
This commit is contained in:
+94
-130
@@ -1,11 +1,15 @@
|
||||
use anyhow::{anyhow, Context, Result};
|
||||
use clap::Command;
|
||||
#[cfg(feature = "imap-backend")]
|
||||
use pimalaya_email::ImapBackend;
|
||||
use pimalaya_email::{
|
||||
BackendBuilder, BackendConfig, ImapBackend, SenderBuilder, DEFAULT_INBOX_FOLDER,
|
||||
BackendBuilder, BackendConfig, BackendSyncBuilder, SenderBuilder, DEFAULT_INBOX_FOLDER,
|
||||
};
|
||||
use std::env;
|
||||
use url::Url;
|
||||
|
||||
#[cfg(feature = "imap-backend")]
|
||||
use himalaya::imap;
|
||||
use himalaya::{
|
||||
account, cache, compl,
|
||||
config::{self, DeserializedConfig},
|
||||
@@ -14,9 +18,6 @@ use himalaya::{
|
||||
tpl, IdMapper,
|
||||
};
|
||||
|
||||
#[cfg(feature = "imap-backend")]
|
||||
use himalaya::imap;
|
||||
|
||||
fn create_app() -> Command {
|
||||
let app = Command::new(env!("CARGO_PKG_NAME"))
|
||||
.version(env!("CARGO_PKG_VERSION"))
|
||||
@@ -42,7 +43,8 @@ fn create_app() -> Command {
|
||||
}
|
||||
|
||||
#[allow(clippy::single_match)]
|
||||
fn main() -> Result<()> {
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
let default_env_filter = env_logger::DEFAULT_FILTER_ENV;
|
||||
env_logger::init_from_env(env_logger::Env::default().filter_or(default_env_filter, "off"));
|
||||
|
||||
@@ -52,8 +54,8 @@ fn main() -> Result<()> {
|
||||
let url = Url::parse(&raw_args[1])?;
|
||||
let config = DeserializedConfig::from_opt_path(None)?;
|
||||
let account_config = config.to_account_config(None)?;
|
||||
let mut backend = BackendBuilder::new().build(&account_config)?;
|
||||
let mut sender = SenderBuilder::new().build(&account_config)?;
|
||||
let mut backend = BackendBuilder::new(account_config.clone()).build()?;
|
||||
let mut sender = SenderBuilder::new(account_config.clone()).build()?;
|
||||
let mut printer = StdoutPrinter::default();
|
||||
|
||||
return email::handlers::mailto(
|
||||
@@ -68,7 +70,7 @@ fn main() -> Result<()> {
|
||||
let app = create_app();
|
||||
let m = app.get_matches();
|
||||
|
||||
// checks completion command before configs
|
||||
// check completion command before configs
|
||||
// https://github.com/soywod/himalaya/issues/115
|
||||
match compl::args::matches(&m)? {
|
||||
Some(compl::args::Cmd::Generate(shell)) => {
|
||||
@@ -77,7 +79,7 @@ fn main() -> Result<()> {
|
||||
_ => (),
|
||||
}
|
||||
|
||||
// also checks man command before configs
|
||||
// check also man command before configs
|
||||
match man::args::matches(&m)? {
|
||||
Some(man::args::Cmd::GenerateAll(dir)) => {
|
||||
return man::handlers::generate(dir, create_app());
|
||||
@@ -85,53 +87,47 @@ fn main() -> Result<()> {
|
||||
_ => (),
|
||||
}
|
||||
|
||||
// inits config
|
||||
let config = DeserializedConfig::from_opt_path(config::args::parse_arg(&m))?;
|
||||
let account_config = config.to_account_config(account::args::parse_arg(&m))?;
|
||||
let account_name = account_config.name.clone();
|
||||
let folder = folder::args::parse_source_arg(&m);
|
||||
let disable_cache = cache::args::parse_disable_cache_flag(&m);
|
||||
|
||||
// FIXME: find why account config cannot be borrowed
|
||||
// let backend_builder =
|
||||
// BackendBuilder::new(Cow::Borrowed(&account_config)).with_cache_disabled(disable_cache);
|
||||
let backend_builder =
|
||||
BackendBuilder::new(account_config.clone()).with_cache_disabled(disable_cache);
|
||||
let sender_builder = SenderBuilder::new(account_config.clone());
|
||||
let mut printer = StdoutPrinter::try_from(&m)?;
|
||||
|
||||
// checks IMAP commands
|
||||
#[cfg(feature = "imap-backend")]
|
||||
if let BackendConfig::Imap(imap_config) = &account_config.backend {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
|
||||
// FIXME: find a way to downcast `backend` instead of
|
||||
// recreating an instance.
|
||||
match imap::args::matches(&m)? {
|
||||
Some(imap::args::Cmd::Notify(keepalive)) => {
|
||||
let imap = ImapBackend::new(account_config.clone(), imap_config.clone())?;
|
||||
return imap::handlers::notify(&imap, &folder, keepalive);
|
||||
let mut backend =
|
||||
ImapBackend::new(account_config.clone(), imap_config.clone(), None)?;
|
||||
return imap::handlers::notify(&mut backend, &folder, keepalive);
|
||||
}
|
||||
Some(imap::args::Cmd::Watch(keepalive)) => {
|
||||
let imap = ImapBackend::new(account_config.clone(), imap_config.clone())?;
|
||||
return imap::handlers::watch(&imap, &folder, keepalive);
|
||||
let mut backend =
|
||||
ImapBackend::new(account_config.clone(), imap_config.clone(), None)?;
|
||||
return imap::handlers::watch(&mut backend, &folder, keepalive);
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
// inits services
|
||||
let disable_cache = cache::args::parse_disable_cache_flag(&m);
|
||||
let mut printer = StdoutPrinter::try_from(&m)?;
|
||||
|
||||
// checks account commands
|
||||
match account::args::matches(&m)? {
|
||||
Some(account::args::Cmd::List(max_width)) => {
|
||||
return account::handlers::list(max_width, &account_config, &config, &mut printer);
|
||||
}
|
||||
Some(account::args::Cmd::Sync(folders_strategy, dry_run)) => {
|
||||
let backend = BackendBuilder::new()
|
||||
.sessions_pool_size(8)
|
||||
.disable_cache(true)
|
||||
.build(&account_config)?;
|
||||
account::handlers::sync(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
backend.as_ref(),
|
||||
folders_strategy,
|
||||
dry_run,
|
||||
)?;
|
||||
backend.close()?;
|
||||
Some(account::args::Cmd::Sync(strategy, dry_run)) => {
|
||||
let sync_builder = BackendSyncBuilder::new(account_config, backend_builder)?
|
||||
.with_some_folders_strategy(strategy)
|
||||
.with_dry_run(dry_run);
|
||||
account::handlers::sync(&mut printer, sync_builder, dry_run)?;
|
||||
return Ok(());
|
||||
}
|
||||
Some(account::args::Cmd::Configure(reset)) => {
|
||||
@@ -147,15 +143,11 @@ fn main() -> Result<()> {
|
||||
.ok_or_else(|| anyhow!("the folder argument is missing"))
|
||||
.context("cannot create folder")?;
|
||||
let folder = account_config.folder_alias(folder)?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut backend = backend_builder.build()?;
|
||||
return folder::handlers::create(&mut printer, backend.as_mut(), &folder);
|
||||
}
|
||||
Some(folder::args::Cmd::List(max_width)) => {
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut backend = backend_builder.build()?;
|
||||
return folder::handlers::list(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -165,9 +157,7 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(folder::args::Cmd::Expunge) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut backend = backend_builder.build()?;
|
||||
return folder::handlers::expunge(&mut printer, backend.as_mut(), &folder);
|
||||
}
|
||||
Some(folder::args::Cmd::Delete) => {
|
||||
@@ -175,9 +165,7 @@ fn main() -> Result<()> {
|
||||
.ok_or_else(|| anyhow!("the folder argument is missing"))
|
||||
.context("cannot delete folder")?;
|
||||
let folder = account_config.folder_alias(folder)?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut backend = backend_builder.build()?;
|
||||
return folder::handlers::delete(&mut printer, backend.as_mut(), &folder);
|
||||
}
|
||||
_ => (),
|
||||
@@ -187,10 +175,8 @@ fn main() -> Result<()> {
|
||||
match email::args::matches(&m)? {
|
||||
Some(email::args::Cmd::Attachments(ids)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
return email::handlers::attachments(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -202,10 +188,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Copy(ids, to_folder)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::copy(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -218,10 +203,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Delete(ids)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::delete(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -233,11 +217,10 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Forward(id, headers, body)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut sender = SenderBuilder::new().build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let mut sender = sender_builder.build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::forward(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -252,10 +235,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::List(max_width, page_size, page)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::list(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -269,10 +251,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Move(ids, to_folder)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::move_(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -285,10 +266,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Read(ids, text_mime, raw, headers)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::read(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -303,11 +283,10 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Reply(id, all, headers, body)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut sender = SenderBuilder::new().build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let mut sender = sender_builder.build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::reply(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -323,10 +302,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Save(raw_email)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::save(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -338,10 +316,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Search(query, max_width, page_size, page)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::search(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -356,10 +333,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(email::args::Cmd::Sort(criteria, query, max_width, page_size, page)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return email::handlers::sort(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -374,10 +350,8 @@ fn main() -> Result<()> {
|
||||
);
|
||||
}
|
||||
Some(email::args::Cmd::Send(raw_email)) => {
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut sender = SenderBuilder::new().build(&account_config)?;
|
||||
let mut backend = backend_builder.build()?;
|
||||
let mut sender = sender_builder.build()?;
|
||||
return email::handlers::send(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -389,10 +363,9 @@ fn main() -> Result<()> {
|
||||
Some(email::args::Cmd::Flag(m)) => match m {
|
||||
Some(flag::args::Cmd::Set(ids, ref flags)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return flag::handlers::set(
|
||||
&mut printer,
|
||||
&id_mapper,
|
||||
@@ -404,10 +377,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(flag::args::Cmd::Add(ids, ref flags)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return flag::handlers::add(
|
||||
&mut printer,
|
||||
&id_mapper,
|
||||
@@ -419,10 +391,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(flag::args::Cmd::Remove(ids, ref flags)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return flag::handlers::remove(
|
||||
&mut printer,
|
||||
&id_mapper,
|
||||
@@ -437,10 +408,9 @@ fn main() -> Result<()> {
|
||||
Some(email::args::Cmd::Tpl(m)) => match m {
|
||||
Some(tpl::args::Cmd::Forward(id, headers, body)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return tpl::handlers::forward(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -457,10 +427,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(tpl::args::Cmd::Reply(id, all, headers, body)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return tpl::handlers::reply(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -475,10 +444,9 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(tpl::args::Cmd::Save(tpl)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_config.name, &folder)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let id_mapper = IdMapper::new(backend.as_ref(), &account_name, &folder)?;
|
||||
|
||||
return tpl::handlers::save(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -490,10 +458,8 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some(tpl::args::Cmd::Send(tpl)) => {
|
||||
let folder = account_config.folder_alias(folder.unwrap_or(DEFAULT_INBOX_FOLDER))?;
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut sender = SenderBuilder::new().build(&account_config)?;
|
||||
let mut backend = backend_builder.clone().into_build()?;
|
||||
let mut sender = sender_builder.build()?;
|
||||
return tpl::handlers::send(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
@@ -506,10 +472,8 @@ fn main() -> Result<()> {
|
||||
_ => (),
|
||||
},
|
||||
Some(email::args::Cmd::Write(headers, body)) => {
|
||||
let mut backend = BackendBuilder::new()
|
||||
.disable_cache(disable_cache)
|
||||
.build(&account_config)?;
|
||||
let mut sender = SenderBuilder::new().build(&account_config)?;
|
||||
let mut backend = backend_builder.build()?;
|
||||
let mut sender = sender_builder.build()?;
|
||||
return email::handlers::write(
|
||||
&account_config,
|
||||
&mut printer,
|
||||
|
||||
Reference in New Issue
Block a user