[−][src]Macro new_tokio_smtp::smtp_chain
creates a chain of commands and them to the given connection
This will call boxed()
on every command, while puting them
into a vector which is then passed to cain
.
Example
use futures::future::{self, Future}; use new_tokio_smtp::chain::OnError; use new_tokio_smtp::{command, Connection, ReversePath, ForwardPath}; let fut = future ::lazy(|| mock_create_connection()) .and_then(|con| smtp_chain!(con with OnError::StopAndReset => [ command::Mail::new( ReversePath::from_unchecked("test@sender.test")), command::Recipient::new( ForwardPath::from_unchecked("test@receiver.test")), command::Data::from_buf(concat!( "Date: Thu, 14 Jun 2018 11:22:18 +0000\r\n", "From: Sendu <test@sender.test>\r\n", "\r\n", "...\r\n" )) ])) .and_then(|(con, smtp_chain_result)| { if let Err((at_idx, err)) = smtp_chain_result { println!("server says no on the cmd with index {}: {}", at_idx, err) } con.quit() }); // ... this are tokio using operation make sure there is // a running tokio instance/runtime/event loop mock_run_with_tokio(fut);