Skip to content

Commit 6d6dc9f

Browse files
committed
Upgrade lettre and address API changes
SmtpTransport::simple_builder() automatically validates the TLS certificate against the provided domain name.
1 parent c18985e commit 6d6dc9f

File tree

4 files changed

+55
-31
lines changed

4 files changed

+55
-31
lines changed

Cargo.lock

+40-19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+3-1
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,12 @@ comrak = { version = "0.2.3", default-features = false }
5555
ammonia = "1.0.0"
5656
docopt = "0.8.1"
5757
itertools = "0.7.0"
58-
lettre = "0.6"
5958
scheduled-thread-pool = "0.2.0"
6059
derive_deref = "1.0.0"
6160

61+
lettre = "0.7"
62+
lettre_email = "0.7"
63+
6264
conduit = "0.8"
6365
conduit-conditional-get = "0.8"
6466
conduit-cookie = "0.8"

src/email.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ use dotenv::dotenv;
22
use std::env;
33
use std::path::Path;
44
use util::{bad_request, CargoResult};
5-
use lettre::email::{Email, EmailBuilder};
6-
use lettre::transport::file::FileEmailTransport;
7-
use lettre::transport::EmailTransport;
8-
use lettre::transport::smtp::{SecurityLevel, SmtpTransportBuilder};
9-
use lettre::transport::smtp::SUBMISSION_PORT;
10-
use lettre::transport::smtp::authentication::Mechanism;
5+
6+
use lettre::file::FileEmailTransport;
7+
use lettre::EmailTransport;
8+
use lettre::smtp::SmtpTransport;
9+
use lettre::smtp::authentication::{Credentials, Mechanism};
10+
11+
use lettre_email::{Email, EmailBuilder};
1112

1213
#[derive(Debug)]
1314
pub struct MailgunConfigVars {
@@ -61,19 +62,18 @@ pub fn send_email(recipient: &str, subject: &str, body: &str) -> CargoResult<()>
6162
match mailgun_config {
6263
Some(mailgun_config) => {
6364
let mut transport =
64-
SmtpTransportBuilder::new((mailgun_config.smtp_server.as_str(), SUBMISSION_PORT))?
65-
.credentials(&mailgun_config.smtp_login, &mailgun_config.smtp_password)
66-
.security_level(SecurityLevel::AlwaysEncrypt)
65+
SmtpTransport::simple_builder(mailgun_config.smtp_server)?
66+
.credentials(Credentials::new(mailgun_config.smtp_login, mailgun_config.smtp_password))
6767
.smtp_utf8(true)
6868
.authentication_mechanism(Mechanism::Plain)
6969
.build();
7070

71-
let result = transport.send(email.clone());
71+
let result = transport.send(&email);
7272
result.map_err(|_| bad_request("Error in sending email"))?;
7373
}
7474
None => {
7575
let mut sender = FileEmailTransport::new(Path::new("/tmp"));
76-
let result = sender.send(email.clone());
76+
let result = sender.send(&email);
7777
result.map_err(|_| bad_request("Email file could not be generated"))?;
7878
}
7979
}

src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ extern crate git2;
2222
extern crate hex;
2323
extern crate htmlescape;
2424
extern crate lettre;
25+
extern crate lettre_email;
2526
extern crate license_exprs;
2627
#[macro_use]
2728
extern crate log;

0 commit comments

Comments
 (0)