Rust पर ईमेल भेजना: मेल के साथ काम करने के लिए lettre और mailparse लाइब्रेरीज़

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

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

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

Rust पर ईमेल भेजना: lettre और mailparse लाइब्रेरीज़

\n\n

Rust एक सिस्टम प्रोग्रामिंग भाषा है, जिसका उपयोग उच्च-लोड वेब सेवाओं और माइक्रोसर्विसेज बनाने के लिए तेजी से बढ़ रहा है। ऐसी परियोजनाओं में सामान्य कार्यों में से एक ईमेल भेजना है। Rust के इकोसिस्टम में ईमेल के साथ काम करने के लिए कई परिपक्व लाइब्रेरीज़ हैं, जिनमें lettre और mailparse प्रमुख हैं।

\n\n

इस लेख में, हम विस्तार से देखेंगे कि Rust पर SMTP का उपयोग करके ईमेल भेजना कैसे सेट करें, अटैचमेंट कैसे जोड़ें और HTML ईमेल कैसे बनाएं, साथ ही आने वाले संदेशों को कैसे पार्स करें। यह सामग्री उन डेवलपर्स के लिए है जो Rust की मूल बातों से पहले से परिचित हैं।

\n\n

lettre लाइब्रेरी: ईमेल भेजने का आधार

\n\n

Lettre Rust में ईमेल के साथ काम करने के लिए एक आधुनिक, एसिंक्रोनस और सिंक्रोनस लाइब्रेरी है। यह समर्थन करती है:

\n\n
    \n
  • SMTP ट्रांसपोर्ट (STARTTLS और SSL/TLS सहित);
  • \n
  • MIME प्रारूप में ईमेल बनाना (टेक्स्ट, HTML, अटैचमेंट);
  • \n
  • एन्कोडिंग के साथ काम करना (Base64, Quoted-Printable);
  • \n
  • tokio या async-std के माध्यम से एसिंक्रोनस ट्रांसपोर्ट।
  • \n
\n\n

प्रोजेक्ट में lettre जोड़ने के लिए, यह कमांड चलाएँ:

\n\n
cargo add lettre\ncargo add tokio --features full  # एसिंक्रोनस मोड के लिए
\n\n

SMTP के माध्यम से बुनियादी ईमेल भेजना

\n\n

आइए एक सरल उदाहरण देखें — Gmail (या किसी अन्य प्रदाता) के SMTP सर्वर के माध्यम से टेक्स्ट ईमेल भेजना।

\n\n
use lettre::transport::smtp::authentication::Credentials;\nuse lettre::{Message, SmtpTransport, Transport};\n\nfn main() -> Result<(), Box<dyn std::error::Error>> {\n    // ईमेल बनाएँ\n    let email = Message::builder()\n        .from("प्रेषक <from@example.com>".parse()?)\n        .to("प्राप्तकर्ता <to@example.com>".parse()?)\n        .subject("Rust से नमस्ते!")\n        .body("यह Rust पर भेजा गया एक परीक्षण ईमेल है।".to_string())?;\n\n    // SMTP सेटिंग्स (Gmail के लिए उदाहरण)\n    let creds = Credentials::new(\n        "your_email@gmail.com".to_string(),\n        "your_app_password".to_string(),\n    );\n\n    // ट्रांसपोर्ट बनाएँ\n    let mailer = SmtpTransport::relay("smtp.gmail.com")?\n        .credentials(creds)\n        .build();\n\n    // भेजें\n    match mailer.send(&email) {\n        Ok(_) => println!("ईमेल सफलतापूर्वक भेजा गया!"),\n        Err(e) => eprintln!("भेजने में त्रुटि: {}", e),\n    }\n\n    Ok(())\n}
\n\n

ध्यान दें: Gmail के लिए ऐप पासवर्ड की आवश्यकता होगी, मुख्य पासवर्ड की नहीं। अन्य प्रदाताओं (Yandex, Mail.ru, आपका अपना SMTP) के लिए, सर्वर पता और पोर्ट बदलें।

\n\n

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

\n\n

Lettre आसानी से मल्टीपार्ट MIME संदेश बनाने की अनुमति देता है। आइए HTML बॉडी और एक अटैचमेंट जोड़ें:

\n\n
use lettre::message::header::ContentType;\nuse lettre::message::{Attachment, MultiPart, SinglePart};\nuse lettre::{Message, SmtpTransport, Transport};\n\nfn send_html_with_attachment() -> Result<(), Box<dyn std::error::Error>> {\n    // ईमेल का HTML बॉडी\n    let html_body = "<h1>नमस्ते!</h1><p>यह Rust से HTML ईमेल है।</p>".to_string();\n\n    // मल्टीपार्ट ईमेल बनाएँ\n    let email = Message::builder()\n        .from("प्रेषक <from@example.com>".parse()?)\n        .to("प्राप्तकर्ता <to@example.com>".parse()?)\n        .subject("अटैचमेंट के साथ HTML ईमेल")\n        .multipart(\n            MultiPart::mixed()\n                .singlepart(\n                    SinglePart::builder()\n                        .header(ContentType::TEXT_HTML)\n                        .body(html_body),\n                )\n                .singlepart(\n                    Attachment::new("document.pdf".to_string())\n                        .body(vec![0x25, 0x50, 0x44, 0x46], ContentType::parse("application/pdf")?),\n                ),\n        )?;\n\n    // भेजना (पिछले उदाहरण के समान)\n                    

अनुशंसाएँ