Remove SmtpClient and make transport immutable

in Transport methods. Also make proper use of
connection pools.
This commit is contained in:
Alexis Mousset
2020-05-01 20:51:07 +02:00
parent dfbe6e9ba2
commit 0604030b91
20 changed files with 507 additions and 713 deletions

View File

@@ -1,7 +1,7 @@
#[cfg(all(test, feature = "smtp-transport", feature = "connection-pool"))]
mod test {
use lettre::{
ClientSecurity, Email, EmailAddress, Envelope, SmtpClient, SmtpConnectionManager, Transport,
Email, EmailAddress, Envelope, SmtpConnectionManager, SmtpTransport, Tls, Transport,
};
use r2d2::Pool;
use std::{sync::mpsc, thread};
@@ -20,7 +20,7 @@ mod test {
#[test]
fn send_one() {
let client = SmtpClient::new("127.0.0.1:2525", ClientSecurity::None).unwrap();
let client = SmtpTransport::new("127.0.0.1:2525", Tls::None).unwrap();
let manager = SmtpConnectionManager::new(client).unwrap();
let pool = Pool::builder().max_size(1).build(manager).unwrap();
@@ -31,7 +31,7 @@ mod test {
#[test]
fn send_from_thread() {
let client = SmtpClient::new("127.0.0.1:2525", ClientSecurity::None).unwrap();
let client = SmtpTransport::new("127.0.0.1:2525", Tls::None).unwrap();
let manager = SmtpConnectionManager::new(client).unwrap();
let pool = Pool::builder().max_size(2).build(manager).unwrap();

View File

@@ -10,7 +10,7 @@ mod test {
#[test]
fn file_transport() {
let mut sender = FileTransport::new(temp_dir());
let sender = FileTransport::new(temp_dir());
let email = Message::builder()
.from("NoBody <nobody@domain.tld>".parse().unwrap())
.reply_to("Yuin <yuin@domain.tld>".parse().unwrap())

View File

@@ -5,7 +5,7 @@ mod test {
#[test]
fn sendmail_transport_simple() {
let mut sender = SendmailTransport::new();
let sender = SendmailTransport::new();
let email = Message::builder()
.from("NoBody <nobody@domain.tld>".parse().unwrap())
.reply_to("Yuin <yuin@domain.tld>".parse().unwrap())

View File

@@ -1,7 +1,7 @@
#[cfg(test)]
#[cfg(feature = "smtp-transport")]
mod test {
use lettre::{ClientSecurity, Message, SmtpClient, Transport};
use lettre::{Message, SmtpTransport, Transport};
#[test]
fn smtp_transport_simple() {
@@ -12,9 +12,8 @@ mod test {
.subject("Happy new year")
.body("Be happy!")
.unwrap();
SmtpClient::new("127.0.0.1:2525", ClientSecurity::None)
.unwrap()
.transport()
SmtpTransport::new("127.0.0.1")
.port(2525)
.send(&email)
.unwrap();
}

View File

@@ -2,8 +2,8 @@ use lettre::{transport::stub::StubTransport, Message, Transport};
#[test]
fn stub_transport() {
let mut sender_ok = StubTransport::new_positive();
let mut sender_ko = StubTransport::new(Err(()));
let sender_ok = StubTransport::new_positive();
let sender_ko = StubTransport::new(Err(()));
let email = Message::builder()
.from("NoBody <nobody@domain.tld>".parse().unwrap())
.reply_to("Yuin <yuin@domain.tld>".parse().unwrap())