pub struct EmailAddress { /* private fields */ }
Implementations§
Source§impl EmailAddress
impl EmailAddress
Source§impl EmailAddress
impl EmailAddress
Sourcepub fn address(address: &str) -> Self
pub fn address(address: &str) -> Self
Examples found in repository?
examples/basic.rs (line 19)
18fn send_html(recipient: &str, key: &str, domain: &str) {
19 let recipient = EmailAddress::address(recipient);
20 let message = Message {
21 to: vec![recipient],
22 subject: String::from("mailgun-rs"),
23 html: String::from("<h1>hello from mailgun</h1>"),
24 ..Default::default()
25 };
26 let client = Mailgun {
27 api_key: String::from(key),
28 domain: String::from(domain),
29 };
30 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
31
32 match client.send(MailgunRegion::US, &sender, message, None) {
33 Ok(_) => {
34 println!("successful");
35 }
36 Err(err) => {
37 println!("Error: {err}");
38 }
39 }
40}
41
42fn send_template(recipient: &str, key: &str, domain: &str) {
43 let mut template_vars = HashMap::new();
44 template_vars.insert(String::from("name"), String::from("Dongri Jin"));
45 let recipient = EmailAddress::address(recipient);
46 let message = Message {
47 to: vec![recipient],
48 subject: String::from("mailgun-rs"),
49 template: String::from("template-1"),
50 template_vars,
51 ..Default::default()
52 };
53 let client = Mailgun {
54 api_key: String::from(key),
55 domain: String::from(domain),
56 };
57 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
58
59 match client.send(MailgunRegion::US, &sender, message, None) {
60 Ok(_) => {
61 println!("successful");
62 }
63 Err(err) => {
64 println!("Error: {err}");
65 }
66 }
67}
68
69fn send_with_attachment(recipient: &str, key: &str, domain: &str) {
70 let recipient = EmailAddress::address(recipient);
71 let message = Message {
72 to: vec![recipient],
73 subject: String::from("mailgun-rs"),
74 html: String::from("<h1>hello from mailgun with attachment</h1>"),
75 ..Default::default()
76 };
77
78 let mut attachments = Vec::new();
79 for item in ["file-1", "file-2"] {
80 let file_name = format!("examples/attachments/sample-{item}.txt");
81 let absolute_path =
82 fs::canonicalize(Path::new(&file_name)).expect("cannot get absolute path");
83
84 attachments.push(
85 Attachment::builder()
86 .path(absolute_path.to_string_lossy().to_string())
87 .attachment_type(AttachmentType::Attachment)
88 .build(),
89 );
90 }
91
92 let client = Mailgun {
93 api_key: String::from(key),
94 domain: String::from(domain),
95 };
96
97 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
98
99 match client.send(MailgunRegion::US, &sender, message, Some(attachments)) {
100 Ok(_) => {
101 println!("successful");
102 }
103 Err(err) => {
104 println!("Error: {err}");
105 }
106 }
107}
108
109fn send_with_inline_attachment(recipient: &str, key: &str, domain: &str) {
110 let recipient = EmailAddress::address(recipient);
111 let message = Message {
112 to: vec![recipient],
113 subject: String::from("mailgun-rs"),
114 html: String::from(
115 "<h1>hello from mailgun with inline attachment</h1><img src=\"cid:inline.png\">",
116 ),
117 ..Default::default()
118 };
119
120 let mut attachments = Vec::new();
121 let file_name = "examples/attachments/sushi.png";
122 let absolute_path = fs::canonicalize(Path::new(&file_name)).expect("cannot get absolute path");
123
124 // Create an inline attachment
125 attachments.push(
126 Attachment::builder()
127 .path(absolute_path.to_string_lossy().to_string())
128 .attachment_type(AttachmentType::Inline)
129 .build(),
130 );
131
132 let client = Mailgun {
133 api_key: String::from(key),
134 domain: String::from(domain),
135 };
136
137 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
138
139 match client.send(MailgunRegion::US, &sender, message, Some(attachments)) {
140 Ok(_) => {
141 println!("successful");
142 }
143 Err(err) => {
144 println!("Error: {err}");
145 }
146 }
147}
Sourcepub fn name_address(name: &str, address: &str) -> Self
pub fn name_address(name: &str, address: &str) -> Self
Examples found in repository?
examples/basic.rs (line 30)
18fn send_html(recipient: &str, key: &str, domain: &str) {
19 let recipient = EmailAddress::address(recipient);
20 let message = Message {
21 to: vec![recipient],
22 subject: String::from("mailgun-rs"),
23 html: String::from("<h1>hello from mailgun</h1>"),
24 ..Default::default()
25 };
26 let client = Mailgun {
27 api_key: String::from(key),
28 domain: String::from(domain),
29 };
30 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
31
32 match client.send(MailgunRegion::US, &sender, message, None) {
33 Ok(_) => {
34 println!("successful");
35 }
36 Err(err) => {
37 println!("Error: {err}");
38 }
39 }
40}
41
42fn send_template(recipient: &str, key: &str, domain: &str) {
43 let mut template_vars = HashMap::new();
44 template_vars.insert(String::from("name"), String::from("Dongri Jin"));
45 let recipient = EmailAddress::address(recipient);
46 let message = Message {
47 to: vec![recipient],
48 subject: String::from("mailgun-rs"),
49 template: String::from("template-1"),
50 template_vars,
51 ..Default::default()
52 };
53 let client = Mailgun {
54 api_key: String::from(key),
55 domain: String::from(domain),
56 };
57 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
58
59 match client.send(MailgunRegion::US, &sender, message, None) {
60 Ok(_) => {
61 println!("successful");
62 }
63 Err(err) => {
64 println!("Error: {err}");
65 }
66 }
67}
68
69fn send_with_attachment(recipient: &str, key: &str, domain: &str) {
70 let recipient = EmailAddress::address(recipient);
71 let message = Message {
72 to: vec![recipient],
73 subject: String::from("mailgun-rs"),
74 html: String::from("<h1>hello from mailgun with attachment</h1>"),
75 ..Default::default()
76 };
77
78 let mut attachments = Vec::new();
79 for item in ["file-1", "file-2"] {
80 let file_name = format!("examples/attachments/sample-{item}.txt");
81 let absolute_path =
82 fs::canonicalize(Path::new(&file_name)).expect("cannot get absolute path");
83
84 attachments.push(
85 Attachment::builder()
86 .path(absolute_path.to_string_lossy().to_string())
87 .attachment_type(AttachmentType::Attachment)
88 .build(),
89 );
90 }
91
92 let client = Mailgun {
93 api_key: String::from(key),
94 domain: String::from(domain),
95 };
96
97 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
98
99 match client.send(MailgunRegion::US, &sender, message, Some(attachments)) {
100 Ok(_) => {
101 println!("successful");
102 }
103 Err(err) => {
104 println!("Error: {err}");
105 }
106 }
107}
108
109fn send_with_inline_attachment(recipient: &str, key: &str, domain: &str) {
110 let recipient = EmailAddress::address(recipient);
111 let message = Message {
112 to: vec![recipient],
113 subject: String::from("mailgun-rs"),
114 html: String::from(
115 "<h1>hello from mailgun with inline attachment</h1><img src=\"cid:inline.png\">",
116 ),
117 ..Default::default()
118 };
119
120 let mut attachments = Vec::new();
121 let file_name = "examples/attachments/sushi.png";
122 let absolute_path = fs::canonicalize(Path::new(&file_name)).expect("cannot get absolute path");
123
124 // Create an inline attachment
125 attachments.push(
126 Attachment::builder()
127 .path(absolute_path.to_string_lossy().to_string())
128 .attachment_type(AttachmentType::Inline)
129 .build(),
130 );
131
132 let client = Mailgun {
133 api_key: String::from(key),
134 domain: String::from(domain),
135 };
136
137 let sender = EmailAddress::name_address("no-reply", "no-reply@huatuo.xyz");
138
139 match client.send(MailgunRegion::US, &sender, message, Some(attachments)) {
140 Ok(_) => {
141 println!("successful");
142 }
143 Err(err) => {
144 println!("Error: {err}");
145 }
146 }
147}
Trait Implementations§
Source§impl Clone for EmailAddress
impl Clone for EmailAddress
Source§fn clone(&self) -> EmailAddress
fn clone(&self) -> EmailAddress
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for EmailAddress
impl Debug for EmailAddress
Source§impl Display for EmailAddress
impl Display for EmailAddress
Source§impl From<&str> for EmailAddress
impl From<&str> for EmailAddress
Source§impl PartialEq for EmailAddress
impl PartialEq for EmailAddress
impl Eq for EmailAddress
impl StructuralPartialEq for EmailAddress
Auto Trait Implementations§
impl Freeze for EmailAddress
impl RefUnwindSafe for EmailAddress
impl Send for EmailAddress
impl Sync for EmailAddress
impl Unpin for EmailAddress
impl UnwindSafe for EmailAddress
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.