Merge pull request #372 from mibac138/master
feat(all): Merge lettre_email into lettre with a `builder` feature
This commit is contained in:
@@ -9,8 +9,6 @@ install:
|
||||
- cargo -vV
|
||||
build: false
|
||||
test_script:
|
||||
- cargo clean -p lettre
|
||||
- cargo build --verbose --manifest-path lettre/Cargo.toml
|
||||
- cargo clean -p lettre_email -p lettre
|
||||
- cargo test --verbose --manifest-path lettre_email/Cargo.toml
|
||||
- cargo build --verbose
|
||||
- cargo test --verbose
|
||||
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
<a name="Unreleased"></a>
|
||||
### Unreleased
|
||||
|
||||
#### Features
|
||||
* Merged `lettre_email` into `lettre`. To migrate just replace `lettre_email` with `lettre::builder` and make sure to
|
||||
enable `builder` feature (it's enabled by default).
|
||||
|
||||
<a name="v0.9.2"></a>
|
||||
### v0.9.2 (2019-06-11)
|
||||
|
||||
|
||||
71
Cargo.toml
71
Cargo.toml
@@ -1,5 +1,66 @@
|
||||
[workspace]
|
||||
members = [
|
||||
"lettre",
|
||||
"lettre_email",
|
||||
]
|
||||
[package]
|
||||
name = "lettre"
|
||||
version = "0.9.2" # remember to update html_root_url
|
||||
description = "Email client"
|
||||
readme = "README.md"
|
||||
homepage = "http://lettre.at"
|
||||
repository = "https://github.com/lettre/lettre"
|
||||
license = "MIT"
|
||||
authors = ["Alexis Mousset <contact@amousset.me>"]
|
||||
categories = ["email"]
|
||||
keywords = ["email", "smtp", "mailer"]
|
||||
edition = "2018"
|
||||
|
||||
[badges]
|
||||
travis-ci = { repository = "lettre/lettre" }
|
||||
appveyor = { repository = "lettre/lettre" }
|
||||
maintenance = { status = "actively-developed" }
|
||||
is-it-maintained-issue-resolution = { repository = "lettre/lettre" }
|
||||
is-it-maintained-open-issues = { repository = "lettre/lettre" }
|
||||
|
||||
[dependencies]
|
||||
log = "^0.4"
|
||||
nom = { version = "^5.0", optional = true }
|
||||
bufstream = { version = "^0.1", optional = true }
|
||||
native-tls = { version = "^0.2", optional = true }
|
||||
base64 = { version = "^0.11", optional = true }
|
||||
hostname = { version = "^0.2", optional = true }
|
||||
serde = { version = "^1.0", optional = true, features = ["derive"] }
|
||||
serde_json = { version = "^1.0", optional = true }
|
||||
fast_chemail = "^0.9"
|
||||
r2d2 = { version = "^0.8", optional = true }
|
||||
email = { version = "^0.0.20", optional = true }
|
||||
mime = { version = "^0.3", optional = true }
|
||||
time = { version = "^0.1", optional = true }
|
||||
uuid = { version = "^0.8", features = ["v4"], optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
env_logger = "^0.7"
|
||||
glob = "^0.3"
|
||||
criterion = "^0.3"
|
||||
|
||||
[[bench]]
|
||||
name = "transport_smtp"
|
||||
harness = false
|
||||
|
||||
[features]
|
||||
default = ["file-transport", "smtp-transport", "sendmail-transport", "builder"]
|
||||
builder = ["email", "mime", "time", "base64", "uuid"]
|
||||
unstable = []
|
||||
serde-impls = ["serde"]
|
||||
file-transport = ["serde-impls", "serde_json"]
|
||||
smtp-transport = ["bufstream", "native-tls", "base64", "nom", "hostname"]
|
||||
sendmail-transport = []
|
||||
connection-pool = ["r2d2"]
|
||||
|
||||
[[example]]
|
||||
name = "smtp"
|
||||
required-features = ["smtp-transport"]
|
||||
|
||||
[[example]]
|
||||
name = "smtp_gmail"
|
||||
required-features = ["smtp-transport"]
|
||||
|
||||
[[example]]
|
||||
name = "builder"
|
||||
required-features = ["builder"]
|
||||
@@ -34,21 +34,18 @@ Lettre provides the following features:
|
||||
|
||||
## Example
|
||||
|
||||
This library requires Rust 1.34 or newer.
|
||||
This library requires Rust 1.36 or newer.
|
||||
To use this library, add the following to your `Cargo.toml`:
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
lettre = "0.9"
|
||||
lettre_email = "0.9"
|
||||
```
|
||||
|
||||
```rust,no_run
|
||||
extern crate lettre;
|
||||
extern crate lettre_email;
|
||||
|
||||
use lettre::{SmtpClient, Transport};
|
||||
use lettre_email::{Email, mime::TEXT_PLAIN};
|
||||
use lettre::{SmtpClient, Transport, Email, mime::TEXT_PLAIN};
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
extern crate lettre;
|
||||
extern crate lettre_email;
|
||||
extern crate mime;
|
||||
|
||||
use lettre::builder::Email;
|
||||
use lettre::{SmtpClient, Transport};
|
||||
use lettre_email::Email;
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
@@ -1 +0,0 @@
|
||||
../CHANGELOG.md
|
||||
@@ -1,58 +0,0 @@
|
||||
[package]
|
||||
|
||||
name = "lettre"
|
||||
version = "0.9.2" # remember to update html_root_url
|
||||
description = "Email client"
|
||||
readme = "README.md"
|
||||
homepage = "http://lettre.at"
|
||||
repository = "https://github.com/lettre/lettre"
|
||||
license = "MIT"
|
||||
authors = ["Alexis Mousset <contact@amousset.me>"]
|
||||
categories = ["email"]
|
||||
keywords = ["email", "smtp", "mailer"]
|
||||
edition = "2018"
|
||||
|
||||
[badges]
|
||||
travis-ci = { repository = "lettre/lettre" }
|
||||
appveyor = { repository = "lettre/lettre" }
|
||||
maintenance = { status = "actively-developed" }
|
||||
is-it-maintained-issue-resolution = { repository = "lettre/lettre" }
|
||||
is-it-maintained-open-issues = { repository = "lettre/lettre" }
|
||||
|
||||
[dependencies]
|
||||
log = "^0.4"
|
||||
nom = { version = "^5.0", optional = true }
|
||||
bufstream = { version = "^0.1", optional = true }
|
||||
native-tls = { version = "^0.2", optional = true }
|
||||
base64 = { version = "^0.11", optional = true }
|
||||
hostname = { version = "^0.2", optional = true }
|
||||
serde = { version = "^1.0", optional = true, features = ["derive"] }
|
||||
serde_json = { version = "^1.0", optional = true }
|
||||
fast_chemail = "^0.9"
|
||||
r2d2 = { version = "^0.8", optional = true}
|
||||
|
||||
[dev-dependencies]
|
||||
env_logger = "^0.7"
|
||||
glob = "^0.3"
|
||||
criterion = "^0.3"
|
||||
|
||||
[[bench]]
|
||||
name = "transport_smtp"
|
||||
harness = false
|
||||
|
||||
[features]
|
||||
default = ["file-transport", "smtp-transport", "sendmail-transport"]
|
||||
unstable = []
|
||||
serde-impls = ["serde"]
|
||||
file-transport = ["serde-impls", "serde_json"]
|
||||
smtp-transport = ["bufstream", "native-tls", "base64", "nom", "hostname"]
|
||||
sendmail-transport = []
|
||||
connection-pool = [ "r2d2" ]
|
||||
|
||||
[[example]]
|
||||
name = "smtp"
|
||||
required-features = ["smtp-transport"]
|
||||
|
||||
[[example]]
|
||||
name = "smtp_gmail"
|
||||
required-features = ["smtp-transport"]
|
||||
@@ -1 +0,0 @@
|
||||
../LICENSE
|
||||
@@ -1 +0,0 @@
|
||||
../README.md
|
||||
@@ -1 +0,0 @@
|
||||
../CHANGELOG.md
|
||||
@@ -1,32 +0,0 @@
|
||||
[package]
|
||||
|
||||
name = "lettre_email"
|
||||
version = "0.9.2" # remember to update html_root_url
|
||||
description = "Email builder"
|
||||
readme = "README.md"
|
||||
homepage = "http://lettre.at"
|
||||
repository = "https://github.com/lettre/lettre"
|
||||
license = "MIT"
|
||||
authors = ["Alexis Mousset <contact@amousset.me>"]
|
||||
categories = ["email"]
|
||||
keywords = ["email", "mailer"]
|
||||
edition = "2018"
|
||||
|
||||
[badges]
|
||||
travis-ci = { repository = "lettre/lettre_email" }
|
||||
appveyor = { repository = "lettre/lettre_email" }
|
||||
maintenance = { status = "actively-developed" }
|
||||
is-it-maintained-issue-resolution = { repository = "lettre/lettre_email" }
|
||||
is-it-maintained-open-issues = { repository = "lettre/lettre_email" }
|
||||
|
||||
[dev-dependencies]
|
||||
lettre = { version = "^0.9", path = "../lettre", features = ["smtp-transport"] }
|
||||
glob = "0.3"
|
||||
|
||||
[dependencies]
|
||||
email = "^0.0.20"
|
||||
mime = "^0.3"
|
||||
time = "^0.1"
|
||||
uuid = { version = "^0.8", features = ["v4"] }
|
||||
lettre = { version = "^0.9", path = "../lettre", default-features = false }
|
||||
base64 = "^0.11"
|
||||
@@ -1 +0,0 @@
|
||||
../LICENSE
|
||||
@@ -1 +0,0 @@
|
||||
../README.md
|
||||
@@ -1,18 +1,17 @@
|
||||
//! Error and result type for emails
|
||||
|
||||
use self::Error::*;
|
||||
use lettre;
|
||||
use std::io;
|
||||
use std::{
|
||||
error::Error as StdError,
|
||||
fmt::{self, Display, Formatter},
|
||||
io,
|
||||
};
|
||||
|
||||
/// An enum of all error kinds.
|
||||
#[derive(Debug)]
|
||||
pub enum Error {
|
||||
/// Envelope error
|
||||
Envelope(lettre::error::Error),
|
||||
Envelope(crate::error::Error),
|
||||
/// Unparseable filename for attachment
|
||||
CannotParseFilename,
|
||||
/// IO error
|
||||
@@ -45,8 +44,8 @@ impl From<io::Error> for Error {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<lettre::error::Error> for Error {
|
||||
fn from(err: lettre::error::Error) -> Error {
|
||||
impl From<crate::error::Error> for Error {
|
||||
fn from(err: crate::error::Error) -> Error {
|
||||
Error::Envelope(err)
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,6 @@
|
||||
//! Lettre is a mailer written in Rust. lettre_email provides a simple email builder.
|
||||
//!
|
||||
|
||||
#![doc(html_root_url = "https://docs.rs/lettre_email/0.9.2")]
|
||||
#![deny(
|
||||
missing_docs,
|
||||
missing_debug_implementations,
|
||||
missing_copy_implementations,
|
||||
trivial_casts,
|
||||
trivial_numeric_casts,
|
||||
unsafe_code,
|
||||
unstable_features,
|
||||
unused_import_braces
|
||||
)]
|
||||
|
||||
pub extern crate mime;
|
||||
|
||||
pub mod error;
|
||||
|
||||
use crate::error::Error;
|
||||
use crate::{error::Error as LettreError, EmailAddress, Envelope, SendableEmail};
|
||||
pub use email::{Address, Header, Mailbox, MimeMessage, MimeMultipartType};
|
||||
use lettre::{error::Error as LettreError, EmailAddress, Envelope, SendableEmail};
|
||||
use error::Error;
|
||||
use mime::Mime;
|
||||
use std::ffi::OsStr;
|
||||
use std::fs;
|
||||
@@ -28,6 +9,14 @@ use std::str::FromStr;
|
||||
use time::{now, Tm};
|
||||
use uuid::Uuid;
|
||||
|
||||
pub mod error;
|
||||
|
||||
impl From<EmailAddress> for email::Mailbox {
|
||||
fn from(addr: EmailAddress) -> Self {
|
||||
Mailbox::new(addr.into_inner())
|
||||
}
|
||||
}
|
||||
|
||||
/// Builds a `MimeMessage` structure
|
||||
#[derive(PartialEq, Eq, Clone, Debug)]
|
||||
pub struct PartBuilder {
|
||||
@@ -492,7 +481,7 @@ impl EmailBuilder {
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::{EmailBuilder, SendableEmail};
|
||||
use lettre::EmailAddress;
|
||||
use crate::EmailAddress;
|
||||
use time::now;
|
||||
|
||||
#[test]
|
||||
@@ -13,6 +13,8 @@
|
||||
unused_import_braces
|
||||
)]
|
||||
|
||||
#[cfg(feature = "builder")]
|
||||
pub mod builder;
|
||||
pub mod error;
|
||||
#[cfg(feature = "file-transport")]
|
||||
pub mod file;
|
||||
@@ -13,8 +13,6 @@ fn book_test() {
|
||||
.unwrap()
|
||||
.parent()
|
||||
.unwrap()
|
||||
.parent()
|
||||
.unwrap()
|
||||
.join("../website/content/sending-messages"),
|
||||
); // For some reasons, calling .parent() once more gives us None...
|
||||
|
||||
Reference in New Issue
Block a user