Commit Graph

45 Commits

Author SHA1 Message Date
Paolo Barbolini
75716ca269 feat: make crypto and TLS certificate verify backends opt-in (#1054) 2025-02-23 09:32:47 +01:00
André Cruz
3e9b1876d9 feat: add method to obtain TLS result (#1039)
Some TLS toolkits export a result that can be checked afterwards even if
the TLS negotation returned successfully. This can be used for example
if you disabled certificate checks by default, but then want to check
the outcome.

Currently this is only supported on boring TLS.
2025-02-17 09:51:45 +01:00
Paolo Barbolini
bb64baec67 style: warn on more pedantic clippy lints and fix them (#1035) 2025-02-02 12:50:15 +01:00
Paolo Barbolini
83ce5872d7 Fix some clippy warnings (#1009) 2024-11-28 15:48:08 +00:00
André Cruz
fa6191983a feat(tls-peer-certificates): Provide peer certs (#976)
Add a method that, when using a TLS toolkit that supports it, returns
the entire certificate chain. This is useful, for example, when
implementing DANE support which has directives that apply to the issuer
and not just to the leaf certificate.

Not all TLS toolkits support this, so the code will panic if the method
is called when using a TLS toolkit that has no way to return these
certificates.
2024-09-02 17:26:46 +02:00
Paolo Barbolini
dfdf3a61d2 Drop ref syntax (#959) 2024-04-21 11:22:07 +02:00
Paolo Barbolini
1540f16015 Upgrade rustls to v0.22 (#921) 2024-01-02 11:41:16 +01:00
Alexis Mousset
bbab86b484 A few spelling and doc fixes (#900) 2023-08-16 21:56:33 +02:00
André Cruz
fab6680150 Fix clippy warnings (#807)
Depending on the features chosen these attributes were left
unused.
2022-07-25 18:00:17 +02:00
André Cruz
985fa7edc4 Add support for boring TLS (#797)
In contexts where FIPS certification is mandatory, having the
ability to use the certified boring TLS library is sometimes necessary.
Added initial support for it, only one TLS toolkit can be enabled at
one time.
2022-07-16 11:28:14 +02:00
Paolo Barbolini
44e4cfd622 clippy: make rules stricter (#784) 2022-06-16 19:42:13 +02:00
Jacob Halsey
1391a834ce #715: Support setting the local IP address to connect from (#762)
This adds a `local_address: Option<IpAddr>` parameter to the synchronous, and tokio connect functions.

(As far as I can see there is no current way to support this in async-std, because the library doesn't provide any way to do an async connect for an existing socket)
2022-05-29 07:05:39 +00:00
Paolo Barbolini
e1462b2d1b Bump MSRV to 1.56 - Edition 2021 (#745) 2022-03-24 05:52:28 +00:00
Paolo Barbolini
9273d24e54 Use nightly rustfmt features to improve code style (#734)
* format_code_in_doc_comments

* imports_granularity

* group_imports

* Add ci job
2022-02-12 20:03:37 +01:00
Jacob Halsey
29c34adc25 feature(transport-smtp): make peer certificate available in SmtpConnection (#716) 2022-01-19 11:28:34 +01:00
Paolo Barbolini
97d3c760c0 Update rustls to 0.20 (#648) 2021-10-20 14:37:16 +02:00
Paolo Barbolini
55c2618201 Fix latest clippy warnings (#655) 2021-08-02 09:26:34 +00:00
Paolo Barbolini
4471759221 Implement connection timeouts for AsyncSmtpTransport (#635) 2021-06-17 22:39:48 +00:00
Paolo Barbolini
4586f2ad8a Remove useless clones (#609) 2021-05-01 18:22:53 +02:00
Paolo Barbolini
3bc729ca64 Remove MockStream and all internal uses of it (#580)
Co-authored-by: Alexis Mousset <contact@amousset.me>
2021-03-19 08:20:05 +00:00
Alexis Mousset
22efe341fe feat(builder): Seal SMTP error type (#564)
* feat(builder): Seal SMTP error type

* More precise error types
2021-03-13 17:15:21 +00:00
ghizzo01
6afc078545 Avoid boxing the rustls stream (#486) 2020-10-19 21:21: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
60e3a0b7cb refactor: backport improvements from Tokio02 support 2020-08-13 23:37:30 +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
6c440bda73 chore: minor improvements 2020-08-04 11:44:47 +02:00
Alexis Mousset
c352efcb86 feat(transport-smtp): Retry over DNS connection issues (fixes #391) 2020-05-02 22:03:25 +02:00
Alexis Mousset
18a89d4407 feat(transport-smtp): Allow building without tls support 2020-05-02 20:58:40 +02:00
Alexis Mousset
0604030b91 Remove SmtpClient and make transport immutable
in Transport methods. Also make proper use of
connection pools.
2020-05-01 22:25:12 +02:00
Alexis Mousset
53aa5b4df6 Replace email builder by a new implementation (#393)
* Update dependencies (#386)

* Update dependencies and set MSRV to 1.40

* update hyperx

* Use display instead of description for errors

* Make hostname an optional feature

* Envelope from headers

* Update hyperx to 1.0

* rename builder to message

* Cleanup and make Transport send Messages

* Update rustls from 0.16 to 0.17

* Move transports into a common folder

* Merge imports from same crate

* Add message creation example to the site

* Hide "extern crate" in doc examples

* Add References and In-Reply-To methods

* Add message-id header

* Add blog posts and improve doc examples
2020-04-18 21:10:03 +00:00
Alexis Mousset
ae640da631 refactor(all): split email and transport into different crates 2017-05-21 00:59:39 +02:00
Zack Mullaly
2ed25fdbb4 feat(transport): Upgrade to OpenSSL ^0.9 2017-01-01 13:02:10 +01:00
Alexis Mousset
bd8b1265c4 feat(transport-smtp): Add timeout suppor to SMTP transport
Fixes #106
2016-11-06 22:10:46 +01:00
Alexis Mousset
3b4f4a739e style(all): Incompatible improvements in API 2016-10-23 17:16:54 +02:00
Alexis Mousset
a616c0d4c0 style(all): Fix doc and Cargo.toml openssl line 2016-09-01 00:39:04 +02:00
Alexis Mousset
b4603b4fbc feat(transport-smtp): Use rust-openssl 0.8 2016-09-01 00:15:40 +02:00
Alexis Mousset
bc874fa8f4 feat(transport): Add an Error and Result type for each transport 2016-08-31 21:33:02 +02:00
Alexis Mousset
97da0c0869 style(all): improve the code thanks to rust-clippy 2016-05-17 00:54:11 +02:00
Alexis Mousset
d1bef702d6 style(all): run rustfmt 0.5 2016-05-14 12:17:09 +02:00
Alexis Mousset
b7039a7a69 feat(transport-smtp): Change default authentication mecanism default handling
Change the default authentication mechanism selection check if the
connection is encrypted, and only test PLAIN when it is the case.
Also make the .authentication_mechnaism only take one mechanism, as
a user will specify it he wants to ensure one particular method will
be used.

Closes #65
2016-05-10 00:12:39 +02:00
Alexis Mousset
f8c883f58e rustfmt pass 2016-03-20 01:27:58 +01:00
Darius Clark
c436716277 Update 'openssl' to 0.7 2015-11-29 20:51:49 -05:00
Alexis Mousset
5ffb169bc9 Comply with RFC1214 2015-10-29 23:26:20 +01:00
Alexis Mousset
40e749a04a style(formatting): Run rustfmt 2015-10-26 22:51:07 +01:00
Alexis Mousset
54758ebde9 Rename rust-smtp to lettre, add multiple transports support 2015-10-14 23:44:25 +02:00