Commit Graph

344 Commits

Author SHA1 Message Date
Paolo Barbolini
f87c80e05c Update rustdoc html_favicon_url to use the new lettre.rs domain 2020-09-08 22:48:37 +02:00
Paolo Barbolini
1c4a3f0fb3 chore: remove SmtpClient from the public API
We don't provide a method to construct it anyway, so it doesn't make sense
to expose it.
2020-09-08 22:48:37 +02:00
Paolo Barbolini
393d414700 Improve documentation for SmtpTransport methods 2020-09-08 22:48:37 +02:00
Paolo Barbolini
a83f927109 pool: document pool defaults 2020-09-08 21:49:09 +02:00
Paolo Barbolini
c59f67d808 pool: use better defaults
* increases the max_size to r2d2' default of 10
* decreases the min_idle number of connections to 0 (was equal to max_size before)
* decreases the idle timeout from 10 minutes to 1 minute
2020-09-08 21:49:09 +02:00
Paolo Barbolini
69d48c4be7 Don't require Transport::{Ok, Error} to inherit specific traits 2020-09-07 22:35:46 +02:00
Paolo Barbolini
04b42879b0 refactor: optimize parts of the code
Uses the much faster `slice::is_ascii` implementation and avoids copying `v` in `utf8_b.rs`
2020-09-01 15:36:27 +02:00
Paolo Barbolini
542ea4ffd2 refactor(logging): move from log to tracing 2020-08-28 12:36:58 +02:00
Alexis Mousset
41d68616e0 Remove ClientId::new_domain 2020-08-28 11:56:22 +02:00
Alexis Mousset
36aab20086 Mark ClientId::new as deprecated 2020-08-28 11:56:22 +02:00
Alexis Mousset
98f09117f7 fix(transport-smtp): Use 127.0.0.1 literal as EHLO parameter when we have no hostname
Also fix formatting of address literals

Comes from 2275fd8d13
with a different approach for default value.
2020-08-28 11:56:22 +02:00
Paolo Barbolini
c0ef9a38a1 Implement async smtp via tokio 0.2 2020-08-22 18:44:36 +02:00
Paolo Barbolini
694a6d2852 Optimize Address implementation
This reduces the mem::size_of::<Address>() from 72 to 32 and removes
two heap allocations of String when constructing a new instance of Address.
2020-08-22 15:29:11 +02:00
Manuel Pelloni
f865fc1bce Implement creating SmtpTransport using STARTTLS 2020-08-19 12:12:59 +02:00
Paolo Barbolini
60e3a0b7cb refactor: backport improvements from Tokio02 support 2020-08-13 23:37:30 +02:00
Paolo Barbolini
c8ec8984b8 refactor: move SmtpTransport and SmtpClient to it's own module 2020-08-13 23:37:30 +02:00
Paolo Barbolini
1b45c6dd58 refactor: move SmtpClient to it's own module 2020-08-13 23:37:30 +02:00
Paolo Barbolini
c8d73dd940 refactor: stop exporting TlsParameters and Tls as top-level
Most users probably won't need it, after all we made the builder "dangerous"
2020-08-07 19:26:08 +02:00
Paolo Barbolini
bcbdbecd95 refactor: TlsParameters to not expose the inner tls library
Also made it compile with both TLS libraries enabled
2020-08-07 19:26:08 +02:00
Paolo Barbolini
d75fb5956b Merge pull request #445 from paolobarbolini/docs-010
Update docs and examples for 0.10
2020-08-04 15:27:52 +02:00
Paolo Barbolini
49787e0c41 chore: avoid collecting iterators when possible 2020-08-04 11:44:47 +02:00
Paolo Barbolini
3e62efb46a chore: simplify ClientId::hostname 2020-08-04 11:44:47 +02:00
Paolo Barbolini
6c440bda73 chore: minor improvements 2020-08-04 11:44:47 +02:00
Paolo Barbolini
cedfd8bfbb chore: simplify Error and Display implementations 2020-08-04 11:44:47 +02:00
Paolo Barbolini
889ef0ba6a Merge pull request #435 from paolobarbolini/bufstream
Replace unmaintained bufstream crate with std::io::BufReader
2020-08-04 10:30:50 +02:00
Paolo Barbolini
4b238829c7 chore: replace Vec::write_all usage with Vec::extend_from_slice
The underlying implementation simply calls extends_from_slice anyway,
but this removes the error that would never happen
https://doc.rust-lang.org/1.45.2/src/std/io/impls.rs.html#389-393
2020-08-04 10:09:25 +02:00
Paolo Barbolini
fbbd015109 Update docs and examples for 0.10 2020-08-02 22:39:25 +02:00
Paolo Barbolini
8fa66c1e0f clippy: fix warning from #444 2020-08-02 21:48:26 +02:00
Paolo Barbolini
72015da467 Add support for encrypted and signed multipart emails (#444)
Co-authored-by: Tim Anderson <tim@claritynetworks.com.au>
2020-08-02 21:47:37 +02:00
Paolo Barbolini
2173bc5f43 Add tokio ^0.2 support (#440)
* Use fs::write for writing files
* Fix running tests without tokio
2020-07-26 15:11:54 +00:00
Alexis Mousset
df6169bc98 Merge pull request #436 from paolobarbolini/line-wrap
Remove line-wrap crate and replace it with slice.chunks
2020-07-26 15:32:23 +02:00
Paolo Barbolini
e2b641ae89 Refactor async-std support to prepare for more async runtimes
Renames the async feature to async-std1

Moves things out of mod async since it makes things have to be written as r#async
and makes them feel less important.
2020-07-26 14:28:03 +02:00
Paolo Barbolini
f86c544792 Better document that SmtpTransport::builder shouldn't be used 2020-07-26 12:06:28 +02:00
Paolo Barbolini
9e24786f67 Fix broken docs links 2020-07-26 11:40:22 +02:00
Paolo Barbolini
c41948ccd8 Remove line-wrap crate and replace it with slice.chunks 2020-07-22 18:52:51 +02:00
Paolo Barbolini
43adb0fb11 Replace unmaintained bufstream crate with std::io::BufReader 2020-07-21 19:00:59 +02:00
Danilo Bargen
427fb4e35c Replace textnonce with rand
The textnonce dependency pulls in quite a few transitive dependencies.
However, we only use the dependency in a single location, to generate
MIME boundaries. For this, we can use `rand` directly (which is already
a transitive dependency anyways, since it's required by uuid).

This reduces the dependency count for a standard build from 117 to 105.
2020-07-03 16:07:02 +02:00
Alexis Mousset
8c8aa770bf feat(transport): Start async implementation (sendmail, file and stub transports) 2020-05-10 16:12:51 +02:00
Alexis Mousset
0d063873fc feat(transport-smtp): Use a streaming parser for response 2020-05-09 15:12:29 +02:00
Alexis Mousset
ce08d9e8aa feat(builder): Add a content-type method
for SinglePart
2020-05-09 11:27:25 +02:00
Alexis Mousset
c43e205212 feat(transport-smtp): Refactor connection pooling 2020-05-08 17:16:27 +02:00
Alexis Mousset
33b0a9e27d feat(transport-sendmail): Make the command parameter an OsStr 2020-05-08 11:46:25 +02:00
Alexis Mousset
4f0ea6366c fix(all): Document optional features 2020-05-07 19:51:14 +02:00
Alexis Mousset
6499bfe3d4 fix(builder): Fail if required headers are missing (fixes #95) 2020-05-06 20:36:36 +02:00
Alexis Mousset
6afdb0cf3a feat(transport): Make Transport result type an actual Result (fixes #405) 2020-05-05 22:33:35 +02:00
Alexis Mousset
ed9f38d2c8 feat(builder): Allow overriding envelope 2020-05-03 22:03:45 +02:00
Alexis Mousset
8425f1d7c4 chore(all): Move docs from website into API doc 2020-05-03 11:21:47 +02:00
Alexis Mousset
349b349518 fix(transport): Make logs optional and disabled by default (fixes #390) 2020-05-02 22:48:47 +02:00
Alexis Mousset
e609c6bb72 fix(transport): Remove last info logs (fixes #398) 2020-05-02 22:29:10 +02:00
Alexis Mousset
0b98ccad45 Merge pull request #416 from amousset/retry-dns
Retry connection in SMTP transport
2020-05-02 22:10:10 +02:00