Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpMlSb 279 of 288 menu
◀ ▶

Тема письма в Rust

Тема не входит в тело и задается своей строкой в цепочке сборки. Ее видят в заголовке сохраненного файла вместе с адресами, а текст письма остается в теле без смешивания с темой.

Соберем сообщение с другой темой и тем же простым телом:

use lettre::{FileTransport, Message, Transport}; fn main() { match std::fs::create_dir_all("out") { Ok(()) => {} Err(e) => { println!("{}", e); return; } } let from_addr = match "sender@example.com".parse() { Ok(a) => a, Err(e) => { println!("{}", e); return; } }; let to_addr = match "user@example.com".parse() { Ok(a) => a, Err(e) => { println!("{}", e); return; } }; let email = match Message::builder() .from(from_addr) .to(to_addr) .subject("Report") .body(String::from("done")) { Ok(m) => m, Err(e) => { println!("{}", e); return; } }; let sender = FileTransport::new("out"); match sender.send(&email) { Ok(_) => println!("saved"), Err(e) => println!("{}", e), } }

В каталоге out в новом файле будет строка темы Report, а тело останется done. Смена темы не меняет разбор адресов и не требует другого транспорта.

Тему можно держать в переменной и передать в сборку из нее:

use lettre::{FileTransport, Message, Transport}; fn main() { let topic = String::from("Reminder"); match std::fs::create_dir_all("out") { Ok(()) => {} Err(e) => { println!("{}", e); return; } } let from_addr = match "sender@example.com".parse() { Ok(a) => a, Err(e) => { println!("{}", e); return; } }; let to_addr = match "user@example.com".parse() { Ok(a) => a, Err(e) => { println!("{}", e); return; } }; let email = match Message::builder() .from(from_addr) .to(to_addr) .subject(topic) .body(String::from("check")) { Ok(m) => m, Err(e) => { println!("{}", e); return; } }; let sender = FileTransport::new("out"); match sender.send(&email) { Ok(_) => println!("saved"), Err(e) => println!("{}", e), } }

Дан адрес:

user@example.com

Сохраните в out сообщение с отправителем sender@example.com, этим получателем, темой "Tasks" и телом из одного слова.

Скажите, попадет ли строка темы в тело файла в out, если ее задали отдельным шагом сборки.

Дан адрес:

sender@example.com

Запишите переменную topic со значением "Hello", соберите сообщение с получателем user@example.com и сохраните его в out.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить