Rust पर ईमेल भेजना: पत्रों के लिए lettre और mailparse लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Rust पर ईमेल भेजना: मेल के साथ काम करने के लिए शक्तिशाली उपकरण



Rust — एक सिस्टम प्रोग्रामिंग भाषा है, जिसका उपयोग विश्वसनीय और उच्च-प्रदर्शन वाली वेब सेवाएँ बनाने के लिए तेजी से किया जा रहा है। सामान्य कार्यों में से एक है इलेक्ट्रॉनिक मेल भेजना। इस लेख में, हम Rust इकोसिस्टम की ईमेल के साथ काम करने के लिए दो प्रमुख लाइब्रेरियों पर विस्तार से चर्चा करेंगे: lettre (भेजना) और mailparse (पार्सिंग)। आप सीखेंगे कि SMTP क्लाइंट कैसे सेट करें, अटैचमेंट के साथ मेल कैसे भेजें और इनकमिंग मेल को कैसे प्रोसेस करें।



lettre लाइब्रेरी: SMTP के माध्यम से मेल भेजना



lettre — SMTP, SMTP-SSL और STARTTLS के माध्यम से ईमेल भेजने के लिए एक आधुनिक, एसिंक्रोनस और सिंक्रोनस लाइब्रेरी है। यह समर्थन करती है:



  • टेक्स्ट और HTML मेल भेजना
  • अटैचमेंट (चित्र, दस्तावेज़, आर्काइव)
  • प्रमाणीकरण (LOGIN, PLAIN, XOAUTH2)
  • DKIM हस्ताक्षर और TLS एन्क्रिप्शन
  • async/await के साथ काम (tokio, async-std)


शुरू करने के लिए, Cargo.toml में डिपेंडेंसी जोड़ें:



[dependencies]lettre = { version = "0.11", features = ["builder", "smtp-transport", "tokio1-rustls-tls"] }tokio = { version = "1", features = ["full"] }


बेसिक उदाहरण: टेक्स्ट मेल भेजना



use lettre::transport::smtp::authentication::Credentials;use lettre::{Message, SmtpTransport, Transport};

#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { // मेल बनाएँ let email = Message::builder() .from("प्रेषक <sender@example.com>".parse()?) .to("प्राप्तकर्ता <recipient@example.com>".parse()?) .subject("Rust से नमस्ते!") .body("यह एक परीक्षण मेल है, जो lettre लाइब्रेरी का उपयोग करके भेजा गया है।".to_string())?;

// SMTP सेटअप (Gmail, Yandex, Mail.ru आदि) let creds = Credentials::new("sender@example.com".to_string(), "your_password".to_string()); let mailer = SmtpTransport::relay("smtp.gmail.com")? .credentials(creds) .build();

// भेजना match mailer.send(&email) { Ok(_) => println!("मेल सफलतापूर्वक भेजा गया!"), Err(e) => eprintln!("भेजने में त्रुटि: {}", e), } Ok(())}


अटैचमेंट के साथ HTML मेल भेजना



HTML मार्कअप और फ़ाइल के साथ मेल भेजने के लिए, MultiPart का उपयोग करें:



use lettre::message::{header, MultiPart, SinglePart};use lettre::{Message, SmtpTransport, Transport};use std::fs;

let file_content = fs::read("document.pdf")?;let attachment = SinglePart::builder() .header(header::ContentType::parse("application/pdf")?) .header(header::ContentDisposition::attachment("document.pdf")) .body(file_content);

let html_part = SinglePart::builder() .header(header::ContentType::TEXT_HTML) .body(String::from("<h1>नमस्ते!</h1><p>यह अटैचमेंट के साथ HTML मेल है।</p>"));

let email = Message::builder() .from("sender@example.com".parse()?) .to("recipient@example.com".parse()?) .subject("HTML + अटैचमेंट") .multipart( MultiPart::mixed() .multipart(MultiPart::alternative().singlepart(html_part)) .singlepart(attachment), )?;


mailparse लाइब्रेरी: इनकमिंग मेल का विश्लेषण



mailparse — MIME प्रारूप में ईमेल संदेशों को पार्स करने के लिए एक हल्की लाइब्रेरी है। यह उपयोगी है यदि आप IMAP/POP3 के माध्यम से मेल प्रोसेस करते हैं या .eml फ़ाइलें पढ़ते हैं। मुख्य क्षमताएँ:



  • हेडर निकालना (From, To, Subject, Date)
  • मेल का बॉडी प्राप्त करना (टेक्स्ट/HTML)
  • MIME प्रकारों के साथ अटैचमेंट निकालना
  • Base64 और Quoted-Printable डिकोड करना


उदाहरण: .eml फ़ाइल पढ़ना



use mailparse::*;

fn main() { let eml_content = std::fs::read("email.eml")

अनुशंसाएँ