basic_usage/
basic_usage.rs1use avila_cell::{EmailAddress, message::Email};
2
3fn main() {
4 println!("=== Avila Cell - Email Protocol Demo ===\n");
5
6 let from = EmailAddress::new("sender@avila.inc").unwrap();
8 let to = vec![EmailAddress::new("recipient@avila.inc").unwrap()];
9
10 println!("✓ Endereços criados:");
11 println!(" De: {}", from);
12 println!(" Para: {}", to[0]);
13
14 let mut email = Email::new(
16 from.clone(),
17 to,
18 "Teste Avila Cell".to_string(),
19 "Esta é uma mensagem de teste do ecossistema Avila!".to_string(),
20 );
21
22 email.add_cc(EmailAddress::new("cc@avila.inc").unwrap());
24
25 email.add_header("X-Avila-Version".to_string(), "0.1.0".to_string());
27
28 println!("\n✓ Email criado:");
29 println!(" Message-ID: {}", email.id);
30 println!(" Assunto: {}", email.subject);
31 println!(" CC: {:?}", email.cc);
32
33 let rfc5322 = email.to_rfc5322();
35
36 println!("\n✓ Formato RFC 5322:");
37 println!("{}", "=".repeat(60));
38 println!("{}", rfc5322);
39 println!("{}", "=".repeat(60));
40
41 println!("\n✓ Validações:");
43 println!(" {} é válido? {}", from, from.is_valid());
44
45 let invalid = EmailAddress::new("test@localhost").unwrap();
46 println!(" {} é válido? {}", invalid, invalid.is_valid());
47
48 println!("\n✅ Demo concluído com sucesso!");
49}