1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use templateless::{
	utils, Content, Email, EmailAddress, Footer, Header, Result, Service,
	SocialItem, Templateless,
};

#[tokio::main]
async fn main() -> Result<()> {
	let api_key = utils::get_env("TEMPLATELESS_API_KEY");
	let email_address = utils::get_env("TEMPLATELESS_EMAIL_ADDRESS");

	let header = Header::builder().text("# ExampleApp").build()?;

	let footer = Footer::builder()
		.socials(vec![
			SocialItem::new(Service::Twitter, "ExampleApp"),
			SocialItem::new(Service::GitHub, "ExampleApp"),
		])
		.link("Unsubscribe", "https://example.com/unsubscribe?id=123")
		.build()?;

	let content = Content::builder()
		.header(header)
		.text("Hello world")
		.footer(footer)
		.build()?;

	let email = Email::builder()
		.to(EmailAddress::new(&email_address))
		.subject("Confirm your email")
		.content(content)
		.build()?;

	let templateless = Templateless::new(&api_key);
	let result = templateless.send(email).await?;

	println!("{:?}", result);
	Ok(())
}