PHPMailer से ईमेल भेजना

PHPMailer से ईमेल भेजने के लिए Composer से phpmailer/phpmailer इंस्टॉल करें, isSMTP() से अपना SMTP सर्वर और TLS मोड कॉन्फ़िगर करें, और try/catch ब्लॉक के अंदर $mail->send() कॉल करें।

PHP का बिल्ट-इन mail() फ़ंक्शन संदेशों को स्थानीय sendmail बाइनरी को सौंप देता है, जिसमें न SMTP प्रमाणीकरण होता है, न TLS नेगोशिएशन और न संरचित त्रुटि रिपोर्टिंग। PHPMailer, PHP ऐप्लिकेशन में एक SMTP क्लाइंट, MIME फ़ॉर्मैटिंग और अटैचमेंट सपोर्ट जोड़ता है।

PHPMailer कैसे इंस्टॉल करें?

Composer का इस्तेमाल करें:

composer require phpmailer/phpmailer

फिर ऑटोलोडर लोड करें और ज़रूरी क्लास इम्पोर्ट करें:

<?php
require "vendor/autoload.php";

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

SMTP कैसे कॉन्फ़िगर करें और संदेश कैसे भेजें?

एक PHPMailer इंस्टेंस बनाएँ, isSMTP() से उसे SMTP मोड में डालें, फिर कनेक्शन और संदेश के फ़ील्ड सेट करें। कॉल को try/catch में रखें, ताकि भेजना विफल होने पर त्रुटि दबने के बजाय रिपोर्ट हो:

<?php
$mail = new PHPMailer(true); // true enables exceptions

try {
    // Server settings
    $mail->isSMTP();
    $mail->Host       = "smtp.example.com";
    $mail->SMTPAuth   = true;
    $mail->Username   = getenv("SMTP_USER");
    $mail->Password   = getenv("SMTP_PASS");
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port       = 587;

    // Recipients
    $mail->setFrom("you@yourdomain.com", "Your App");
    $mail->addAddress("recipient@example.org", "Recipient Name");

    // Content
    $mail->isHTML(true);
    $mail->Subject = "Your receipt";
    $mail->Body    = "<p>Thanks for your order.</p>";
    $mail->AltBody = "Thanks for your order. This is the plain-text version.";

    $mail->send();
    echo "Message sent.";
} catch (Exception $e) {
    echo "Send failed: {$mail->ErrorInfo}";
}

SMTPSecure को अपने सर्वर के पोर्ट से मिलाएँ: पोर्ट 587 पर ENCRYPTION_STARTTLS एक सादे कनेक्शन को TLS में अपग्रेड करता है, और पोर्ट 465 पर ENCRYPTION_SMTPS तुरंत TLS नेगोशिएट करता है। isHTML(true) सेट करने से Body HTML माना जाता है, और जो क्लाइंट HTML नहीं दिखाते उनके लिए AltBody सादा-टेक्स्ट भाग के रूप में शामिल होता है। दोनों भाग शामिल करने से डिलीवरेबिलिटी भी बेहतर होती है। कंस्ट्रक्टर में true पास करने पर विफलता की स्थिति में false लौटाने के बजाय Exception थ्रो होता है।

अटैचमेंट कैसे जोड़ें?

send() से पहले फ़ाइल पाथ के साथ addAttachment कॉल करें:

<?php
$mail->addAttachment("./invoices/invoice-1042.pdf", "invoice.pdf");

दूसरा तर्क फ़ाइल का वह नाम तय करता है जो प्राप्तकर्ता को दिखता है। एक से ज़्यादा अटैचमेंट के लिए आप इसे कई बार कॉल कर सकते हैं।

Bird से भेजें

SMTP कनेक्शन सँभाले बिना PHP से HTTPS पर ईमेल भेजने के लिए Bird PHP SDK (composer require messagebird/sdk) इंस्टॉल करें और $bird->email->send() कॉल करें:

<?php
use MessageBird\Bird;

$bird = new Bird(apiKey: getenv("BIRD_API_KEY"));

$message = $bird->email->send(
    from: "onboarding@messagebird.dev",
    to: ["delivered@messagebird.dev"],
    subject: "Hello from PHP",
    html: "<p>It works.</p>",
);

echo $message->getId(), " ", $message->getStatus(), "\n";

कस्टम डोमेन कॉन्फ़िगर करने से पहले onboarding@messagebird.dev प्रेषक और delivered@messagebird.dev सैंडबॉक्स प्राप्तकर्ता आपकी API कुंजी और पेलोड की जाँच करते हैं।

उसी नेटवर्क पर बनाएँ।

एक टेस्ट API key आपको तुरंत मिल जाती है। भुगतान विधि जोड़ने और सेंडर सत्यापित करने पर प्रोडक्शन अनलॉक होता है।

Start building with Bird in minutes.