PHP का उपयोग कर ईमेल कैसे भेजें?




email wamp (9)

आप https://github.com/PHPMailer/PHPMailer पर PHPMailer क्लास का भी उपयोग कर सकते हैं।

यह आपको मेल फ़ंक्शन का उपयोग करने या पारदर्शी रूप से एक smtp सर्वर का उपयोग करने की अनुमति देता है। यह HTML आधारित ईमेल और अनुलग्नक भी संभालता है ताकि आपको अपना स्वयं का कार्यान्वयन लिखने की आवश्यकता न हो।

कक्षा स्थिर है और इसका उपयोग कई अन्य परियोजनाओं जैसे ड्रूपल, शुगरसीएम, वाईआई और जूमला द्वारा किया जाता है!

उपरोक्त पृष्ठ से यहां एक उदाहरण दिया गया है:

<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '[email protected]';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

$mail->From = '[email protected]';
$mail->FromName = 'Mailer';
$mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
$mail->addAddress('[email protected]');               // Name is optional
$mail->addReplyTo('[email protected]', 'Information');
$mail->addCC('[email protected]');
$mail->addBCC('[email protected]');

$mail->WordWrap = 50;                                 // Set word wrap to 50 characters
$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

मैं एक वेबसाइट पर PHP का उपयोग कर रहा हूं और मैं ईमेलिंग कार्यक्षमता जोड़ना चाहता हूं।

मेरे पास WAMPSERVER स्थापित है।

PHP का उपयोग करके मैं एक ईमेल कैसे भेजूं?


आप एक मेल वेब सेवा जैसे पोस्टमार्क, सेंडग्रिड इत्यादि का उपयोग कर सकते हैं।

Sendgrid बनाम पोस्टमार्क बनाम अमेज़ॅन एसईएस और अन्य ईमेल / एसएमटीपी एपीआई प्रदाताओं?

संपादित करें: मैं अभी Google जीमेल एपीआई का उपयोग करता हूं। सख्त फिल्टर के कारण मुझे अपने नियोक्ता के संगठन को अनुस्मारक ईमेल भेजने में परेशानी थी। लेकिन जब तक आप लोगों को स्पैम नहीं करते हैं तब तक जीमेल काम करता है।


एक साधारण ईमेल भेजने के लिए:

<?php
// the message
$msg = "First line of text\nSecond line of text";

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
mail("[email protected]","My subject",$msg);

?>

स्रोत: https://www.w3schools.com/php/func_mail_mail.asp

प्रलेखन: mail()


ज्यादातर परियोजनाओं के लिए, मैं इन दिनों स्विफ्ट मेलर का उपयोग करता हूं। यह उन लोगों द्वारा बनाई गई ईमेल भेजने के लिए एक बहुत ही लचीला और सुरुचिपूर्ण ऑब्जेक्ट उन्मुख दृष्टिकोण है जिसने हमें लोकप्रिय सिम्फनी फ्रेमवर्क और ट्विग टेम्पलेट इंजन दिया है

मूल उपयोग:

require 'mail/swift_required.php';

$message = Swift_Message::newInstance()
    // The subject of your email
    ->setSubject('Jane Doe sends you a message')
    // The from address(es)
    ->setFrom(array('[email protected]' => 'Jane Doe'))
    // The to address(es)
    ->setTo(array('[email protected]' => 'Frank Stevens'))
    // Here, you put the content of your email
    ->setBody('<h3>New message</h3><p>Here goes the rest of my message</p>', 'text/html');

if (Swift_Mailer::newInstance(Swift_MailTransport::newInstance())->send($message)) {
    echo json_encode([
        "status" => "OK",
        "message" => 'Your message has been sent!'
    ], JSON_PRETTY_PRINT);
} else {
    echo json_encode([
        "status" => "error",
        "message" => 'Oops! Something went wrong!'
    ], JSON_PRETTY_PRINT);
}

स्विफ्ट मेलर का उपयोग करने के तरीके के बारे में अधिक जानकारी के लिए आधिकारिक दस्तावेज़ीकरण देखें।


मूल PHP फ़ंक्शन Mail() मेरे लिए काम नहीं करता है। यह संदेश जारी करता है:

503 गैर-स्थानीय ई-मेल पते पर भेजने का प्रयास करते समय इस मेल सर्वर को प्रमाणीकरण की आवश्यकता होती है

इसलिए मैं आमतौर पर PHPMailer पैकेज का उपयोग करता हूं

मैंने गिटहब में संस्करण 5.2.23 डाउनलोड किया GitHub

मैंने अभी 2 फाइलें चुनी हैं और उन्हें मेरे स्रोत PHP रूट में रखा है

class.phpmailer.php
class.smtp.php

PHP फ़ाइल में इसे जोड़ने की आवश्यकता है

require_once('class.smtp.php');
require_once('class.phpmailer.php');

इसके बाद, यह सिर्फ कोड है:

require_once('class.smtp.php');
require_once('class.phpmailer.php');
... 
//----------------------------------------------
// Send an e-mail. Returns true if successful 
//
//   $to - destination
//   $nameto - destination name
//   $subject - e-mail subject
//   $message - HTML e-mail body
//   altmess - text alternative for HTML.
//----------------------------------------------
function sendmail($to,$nameto,$subject,$message,$altmess)  {

  $from  = "[email protected]"
  $namefrom = "yourname";
  $mail = new PHPMailer();  
  $mail->CharSet = 'UTF-8';
  $mail->isSMTP();   // by SMTP
  $mail->SMTPAuth   = true;   // user and password
  $mail->Host       = "localhost";
  $mail->Port       = 25;
  $mail->Username   = $from;  
  $mail->Password   = "yourpassword";
  $mail->SMTPSecure = "";    // options: 'ssl', 'tls' , ''  
  $mail->setFrom($from,$namefrom);   // From (origin)
  $mail->addCC($from,$namefrom);      // There is also addBCC
  $mail->Subject  = $subject;
  $mail->AltBody  = $altmess;
  $mail->Body = $message;
  $mail->isHTML();   // Set HTML type
//$mail->addAttachment("attachment");  
  $mail->addAddress($to, $nameto);
  return $mail->send();
}

यह एक सम्मोहन की तरह काम करता है


मेल फ़ंक्शन का उपयोग करके सादा पाठ ईमेल भेजने के लिए यह बहुत ही बुनियादी तरीका है।

<?php
$to = '[email protected]';
$subject = 'This is subject';
$message = 'This is body of email';
$from = "From: FirstName LastName <[email protected]>";
mail($to,$subject,$message,$from);

पीयर मेल पेज पियर मेल पेज पर भी देखें

यह मानक मेल () फ़ंक्शन की तुलना में थोड़ा अधिक मजबूत लगता है (यदि मानक फ़ंक्शन पर्याप्त नहीं है)।

यहां इस पृष्ठ का एक अंश दिखाया गया है कि इसका उपयोग कैसे किया जाता है। पियर मेल भेजें () उपयोग

<?php
    include('Mail.php');

    $recipients = '[email protected]';

    $headers['From']    = '[email protected]';
    $headers['To']      = '[email protected]';
    $headers['Subject'] = 'Test message';

    $body = 'Test message';

    $smtpinfo["host"] = "smtp.server.com";
    $smtpinfo["port"] = "25";
    $smtpinfo["auth"] = true;
    $smtpinfo["username"] = "smtp_user";
    $smtpinfo["password"] = "smtp_password";


    // Create the mail object using the Mail::factory method
    $mail_object =& Mail::factory("smtp", $smtpinfo); 

    $mail_object->send($recipients, $headers, $body);
?> 

इस स्क्रिप्ट के साथ ईमेल भेजा

<h2>Test Mail</h2>
<?php

if (!isset($_POST["submit"]))
  {
  ?>
  <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
  From: <input type="text" name="from"><br>
  Subject: <input type="text" name="subject"><br>
  Message: <textarea rows="10" cols="40" name="message"></textarea><br>
  <input type="submit" name="submit" value="Click To send mail">
  </form>
  <?php
  }

else

  {

  if (isset($_POST["from"]))
    {
    $from = $_POST["from"]; // sender
    $subject = $_POST["subject"];
    $message = $_POST["message"];

    $message = wordwrap($message, 70);

    mail("[email protected]",$subject,$message,"From: $from\n");
    echo "Thank you for sending an email";
    }
  }
?>

एक बार जब आप ईमेल भेजें बटन दबाएंगे, तो ईमेल [email protected] पर भेजा जाएगा


<?php
include "db_conn.php";//connection file
require "PHPMailerAutoload.php";// it will be in PHPMailer
require "class.smtp.php";// it will be in PHPMailer
require "class.phpmailer.php";// it will be in PHPMailer


$response = array();
$params = json_decode(file_get_contents("php://input"));

if(!empty($params->email_id)){

    $email_id = $params->email_id;
    $flag=false;
    echo "something";
    if(!filter_var($email_id, FILTER_VALIDATE_EMAIL))
    {
        $response['ERROR']='EMAIL address format error'; 
        echo json_encode($response,JSON_UNESCAPED_SLASHES);
        return;
    }
    $sql="SELECT * from sales where email_id ='$email_id' ";

    $result = mysqli_query($conn,$sql);
    $count = mysqli_num_rows($result);

    $to = "[email protected]";
    $subject = "DEMO Subject";
    $messageBody ="demo message .";

    if($count ==0){
        $response["valid"] = false;
        $response["message"] = "User is not registered yet";
        echo json_encode($response);
        return;
    }

    else {

        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPAuth = true; // authentication enabled
        $mail->IsHTML(true); 
        $mail->SMTPSecure = 'ssl';//turn on to send html email
        // $mail->Host = "ssl://smtp.zoho.com";
        $mail->Host = "p3plcpnl0749.prod.phx3.secureserver.net";//you can use gmail 
        $mail->Port = 465;
        $mail->Username = "[email protected]";
        $mail->Password = "demopassword";
        $mail->SetFrom("[email protected]", "Any demo alert");
        $mail->Subject = $subject;

        $mail->Body = $messageBody;
        $mail->AddAddress($to);
        echo "yes";

        if(!$mail->send()) {
           echo "Mailer Error: " . $mail->ErrorInfo;
       } 
       else {
           echo "Message has been sent successfully";
      }
    }

}
else{
    $response["valid"] = false;
    $response["message"] = "Required field(s) missing";
    echo json_encode($response);
}


?>

उपरोक्त कोड मेरे लिए काम कर रहा है।





wampserver