mirror of
https://github.com/chatmail/core.git
synced 2026-05-17 13:56:30 +03:00
First try
This commit is contained in:
3
Cargo.lock
generated
3
Cargo.lock
generated
@@ -200,8 +200,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "async-smtp"
|
name = "async-smtp"
|
||||||
version = "0.3.2"
|
version = "0.3.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/async-email/async-smtp?branch=smtptimeout#74f489f29f8cbd2650d69119e63bf9e35e36dc85"
|
||||||
checksum = "a9720181a7d56bf3b4d0cfdcb6353df975125996bdd2958b4e639c8317fcaa68"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-native-tls",
|
"async-native-tls",
|
||||||
"async-std",
|
"async-std",
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ smallvec = "1.0.0"
|
|||||||
surf = { version = "2.0.0-alpha.4", default-features = false, features = ["h1-client"] }
|
surf = { version = "2.0.0-alpha.4", default-features = false, features = ["h1-client"] }
|
||||||
num-derive = "0.3.0"
|
num-derive = "0.3.0"
|
||||||
num-traits = "0.2.6"
|
num-traits = "0.2.6"
|
||||||
async-smtp = { version = "0.3" }
|
async-smtp = { git = "https://github.com/async-email/async-smtp", branch = "smtptimeout" }
|
||||||
email = { git = "https://github.com/deltachat/rust-email", branch = "master" }
|
email = { git = "https://github.com/deltachat/rust-email", branch = "master" }
|
||||||
lettre_email = { git = "https://github.com/deltachat/lettre", branch = "master" }
|
lettre_email = { git = "https://github.com/deltachat/lettre", branch = "master" }
|
||||||
async-imap = "0.3.1"
|
async-imap = "0.3.1"
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ use async_smtp::*;
|
|||||||
|
|
||||||
use crate::context::Context;
|
use crate::context::Context;
|
||||||
use crate::events::Event;
|
use crate::events::Event;
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
pub type Result<T> = std::result::Result<T, Error>;
|
pub type Result<T> = std::result::Result<T, Error>;
|
||||||
|
|
||||||
@@ -30,7 +31,7 @@ impl Smtp {
|
|||||||
message: Vec<u8>,
|
message: Vec<u8>,
|
||||||
job_id: u32,
|
job_id: u32,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let message_len = message.len();
|
let message_len_bytes = message.len();
|
||||||
|
|
||||||
let recipients_display = recipients
|
let recipients_display = recipients
|
||||||
.iter()
|
.iter()
|
||||||
@@ -47,11 +48,16 @@ impl Smtp {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if let Some(ref mut transport) = self.transport {
|
if let Some(ref mut transport) = self.transport {
|
||||||
transport.send(mail).await.map_err(Error::SendError)?;
|
// The timeout is 1min + 3min per MB.
|
||||||
|
let timeout = 60 + (180 * message_len_bytes / 1_000_000) as u64;
|
||||||
|
transport
|
||||||
|
.send_with_timeout(mail, Some(&Duration::from_secs(timeout)))
|
||||||
|
.await
|
||||||
|
.map_err(Error::SendError)?;
|
||||||
|
|
||||||
context.emit_event(Event::SmtpMessageSent(format!(
|
context.emit_event(Event::SmtpMessageSent(format!(
|
||||||
"Message len={} was smtp-sent to {}",
|
"Message len={} was smtp-sent to {}",
|
||||||
message_len, recipients_display
|
message_len_bytes, recipients_display
|
||||||
)));
|
)));
|
||||||
self.last_success = Some(std::time::SystemTime::now());
|
self.last_success = Some(std::time::SystemTime::now());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user