लोकलहोस्ट से मेल भेजने के लिए XAMPP को कैसे कॉन्फ़िगर करें?


255

मैं लोकलहोस्ट से मेल भेजने की कोशिश कर रहा हूं। लेकिन मैं लोकलहोस्ट से मेल भेजने में असमर्थ हूं, तो क्या कोई मुझे बता सकता है कि मैं लोकलहोस्ट से मेल भेजने के लिए अपने xampp को कैसे कॉन्फ़िगर करूं?


3
क्या हम आपका कोड देख सकते हैं?
एजाज

2
यदि आप हमें वर्तमान कॉन्फ़िगरेशन नहीं देते हैं तो मदद करना असंभव है।
अर्कशाच

1
क्या यह अभी भी बुध के साथ प्रासंगिक है (ApacheFriends XAMPP 1.8.2)? मुझे लगता है कि हाँ, लेकिन अगर वहाँ लोग बुध पसंद कर रहे हैं, तो कृपया नीचे इंगित करें। :) धन्यवाद!
आईकेडवाटर

जवाबों:


370

आप भेजने वाले पैकेज के साथ लोकलहोस्ट से मेल भेज सकते हैं, XmailP में सेंडमेल पैकेज इनबिल्ट है। इसलिए अगर आप XAMPP का इस्तेमाल कर रहे हैं तो आप आसानी से लोकलहोस्ट से मेल भेज सकते हैं।

उदाहरण के लिए आप मेल भेजने के लिए कॉन्फ़िगर कर सकते हैं C:\xampp\php\php.iniऔर c:\xampp\sendmail\sendmail.iniजीमेल के लिए।

में C:\xampp\php\php.iniखोजextension=php_openssl.dll और उस पंक्ति के आरंभ से अर्धविराम हटाने एसएसएल स्थानीय होस्ट के लिए जीमेल के लिए काम करते हैं।

php.ini फ़ाइल में खोजें [mail function]और बदलें

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

अब ओपन करें C:\xampp\sendmail\sendmail.ini। निम्नलिखित कोड के साथ sendmail.ini में सभी मौजूदा कोड को बदलें

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com

अब आप कर चुके हैं !! मेल फ़ंक्शन के साथ php फ़ाइल बनाएं और लोकलहोस्ट से मेल भेजें।

PS: उपरोक्त कोड में my-gmail-id और my-gmail-password को बदलना न भूलें । इसके अलावा, यदि आप ऊपर से सेटिंग कॉपी करते हैं, तो डुप्लिकेट कुंजियों को हटाना न भूलें। उदाहरण के लिए निम्न पंक्ति का अनुसरण करें यदि कोई अन्य sendmail_path है : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"php.ini फ़ाइल में

XAMMP कंट्रोल पैनल का उपयोग कर सर्वर को रिस्टार्ट करना भी याद रखें ताकि बदलाव प्रभावी हों।

जीमेल के लिए कृपया https://support.google.com/accounts/answer/6010255 पर जाएं कम सुरक्षित ऐप्स से पहुंच की अनुमति देने के लिए पर ।

लोकलहोस्ट से जीमेल के माध्यम से लिनक्स (सेंडमेल पैकेज के साथ) पर ईमेल भेजने के लिए कृपया PHP + Ubuntu पर ईमेल भेजें gmail फॉर्म लोकलहोस्ट का उपयोग कर


3
इसके बाद के संस्करण के अलावा, मुझे अपने Sendmail को अपडेट करने की आवश्यकता है glob.com.au/sendmail
kaz

1
मुझे XAMMP 1.7.7 से 2.8.2.3 में अपग्रेड करना पड़ा - Sendmail नए XAMPP में शामिल है। मैंने कुछ महीनों पहले 1.7.7 के साथ एक नए Sendmail का उपयोग करने की कोशिश की और इसे काम करने के लिए नहीं मिला - अंत में बुलेट को थोड़ा सा और नए XAMPP का उपयोग किया और यह वर्णित के रूप में काम करता है।
वानलबर्ट

2
मेरा मानना ​​है कि स्थान C: \ xampp \ php \ php.ini विंडोज़ वातावरण को संदर्भित करता है। अपनी php.ini फ़ाइल के लिए xamppfiles / etc में मैक लुक के लिए।
पॉल ट्रॉट्टर

3
@ वीकास का उत्तर सबसे अच्छा था, लेकिन कृपया ध्यान दें कि smtp_port पर डिफ़ॉल्ट ssl का उपयोग करने से कुछ हालत में काम नहीं किया जा सकता है, 465 का उपयोग कर के रूप में थिरुमलाई मुरुगन उत्तर ने कहा है कि वास्तव में यह मेरे लिए तय किया गया है
Temitayo

2
यह XAMPP संस्करण 7.0.15 के साथ पूरी तरह से काम कर रहा है। बस इसमें से सेमीकोलन को हटाने के लिए मत भूलना और उसी जीमेल आईडी को भी लॉगिन करें जिसे आपने कॉन्फ़िगर किया है फिर नीचे दिए गए लिंक myaccount.google.com/lesssecureapps?pli1 पर जाएं और कम सुरक्षित ऐप्स की अनुमति दें: अब आप XAMPP लोकलहोस्ट से सीधे मेल भेज सकते हैं
raftaar1191

35

परीक्षण उद्देश्यों के लिए XAMPP v3.2.1 में आप XAMPP / mailoutput में भेजे गए ईमेल देख सकते हैं। विंडोज 8 पर मेरे मामले में इसे किसी भी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं थी और ईमेल के परीक्षण का एक सरल समाधान था


1
और अगर यह काम नहीं कर रहा है, तो अपनी जांच करें c:\xampp\php\php.ini, खोज करें [mail function]और उस पंक्ति का उल्लेख करें जो उल्लेख करता है mailtodisk.exe। इस खंड में हर दूसरी पंक्ति को mail.add_x_headerएक के अलावा बाहर रखें ।
टिम मेलोन

3
ऊपर मेरी टिप्पणी के लिए एक अतिरिक्त के रूप में, XAMPP के अधिक हाल के संस्करणों के लिए, आपको मैन्युअल रूप से mailtiskisk पंक्ति जोड़ने की आवश्यकता हो सकती है। यह कुछ इस तरह दिखना चाहिए:sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
टिम मालोन

@TimMalone से टिप्पणी करने के लिए एक अतिरिक्त परिशिष्ट। मैंने पाया कि मेल केवल XAMPP / mailoutput को लिखा जाएगा अगर XAMPP को व्यवस्थापक के रूप में चला रहा है
sohail

@sohail: आपको XAMPP को व्यवस्थापक के रूप में चलाने की आवश्यकता नहीं है, लेकिन आपको सभी उपयोगकर्ताओं को फ़ोल्डर XAMPP / mailoutput (फ़ोल्डर पर राइट क्लिक करें> सुरक्षा> सभी उपयोगकर्ताओं> अनुमतियों को संपादित करें> पूर्ण पहुंच)
लिखने की

@TimMalone मैंने दोनों सुझावों को लागू किया है, लेकिन इतने सारे प्रयासों के बाद भी mailoutput निर्देशिका में कुछ भी नहीं है
विपुल

25

इसके स्थानीय या स्थानीय सर्वर पर ईमेल भेजने के लिए बहुत सरल है

नोट: मैं Xampp स्थापित के साथ विंडोज 7 64 बिट पर परीक्षण मेल सर्वर सॉफ्टवेयर का उपयोग कर रहा हूं

बस टेस्ट मेल सर्वर टूल डाउनलोड करें और अपनी वेबसाइट टेस्ट मेल सर्वर टूल पर दिए गए निर्देश के अनुसार इंस्टॉल करें

अब आपको php.iniफ़ाइल के नीचे केवल दो लाइनों को बदलने की आवश्यकता है

  1. [mail function]अर्ध कोलन खोजें और निकालें जो पहले है;smtp = localhost
  2. अर्ध उपनिवेश पहले रखो sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

आपको कुछ और बदलने की आवश्यकता नहीं है, लेकिन यदि आपको अभी भी चेक के लिए ईमेल नहीं मिल रहे हैं SMTP port, तो पोर्ट संख्या समान होनी चाहिए।

उपरोक्त विधि Xampp सॉफ़्टवेयर द्वारा प्रदान की गई डिफ़ॉल्ट सेटिंग्स के लिए है।


7
यदि आप उस साइट पर भरोसा नहीं करते हैं, तो आप इसके बजाय कोडप्लेक्स से पेपरकट का उपयोग करना चाह सकते हैं: papercut.codeplex.com
मार्सेल बुर्खर्ड

मुझे इसे काम करने के लिए कुछ भी करने की ज़रूरत नहीं थी, बस इसे स्थापित करें।
vonUbisch

मुझे बस पोर्ट बदलना था
पाब्लो एसजी पाचेको

इस उदाहरण में उपयोगकर्ता नाम और पासवर्ड क्या है?
इयोन

@ कोई उपयोगकर्ता नाम और पासवर्ड क्या है?
विकास खूंटेटा

23

आप इंटरनेट के बिना अपने पीसी में मेल भेज सकते हैं

आपको मेल भेजने के लिए पेपरक को इस सरल एप्लिकेशन का उपयोग करना चाहिए । और आपको कुछ भी कॉन्फ़िगर करने की आवश्यकता नहीं है।

बस इसे चलाएं और परीक्षण भेजें मेल भेजने का प्रयास करें:

test_sendmail.php

<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";

mail($to,$subject,$txt,$headers);
?>

और आप इसे देखेंगे:

यहां छवि विवरण दर्ज करें

मुझे आशा है कि आपके पास एक अच्छा दिन होगा। आप मुझे अधिक ट्यूटोरियल पिसथ सोक के लिए Youtube पर पा सकते हैं

चीयर!


1
यह एक बहुत अच्छा समाधान है, जल्दी आसान है और मैं बस सीधे काम में लग सकता हूं। मेल सर्वर के साथ स्थानीय रूप से स्टफिंग करना एक परेशानी है जब यह केवल देव के लिए है।
AdheneManx

1
धन्यवाद मैंने इसका उपयोग अपनी परियोजना के परीक्षण के लिए भी किया।
पिसैथ सोक

19

आपको अपने सर्वर पर SMTP कॉन्फ़िगर करना होगा । आप Google द्वारा G Suite SMTP का उपयोग नि: शुल्क कर सकते हैं:

<?php

$mail = new PHPMailer(true);

// Send mail using Gmail
if($send_using_gmail){
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true; // enable SMTP authentication
    $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
    $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
    $mail->Port = 465; // set the SMTP port for the GMAIL server
    $mail->Username = "your-gmail-account@gmail.com"; // GMAIL username
    $mail->Password = "your-gmail-password"; // GMAIL password
}

// Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";

try{
    $mail->Send();
    echo "Success!";
} catch(Exception $e){
    // Something went bad
    echo "Fail :(";
}

?>

PHPMailer यहाँ और अधिक पढ़ें ।


@ वीकास का उत्तर सबसे अच्छा था, लेकिन कृपया ध्यान दें कि smtp_port पर डिफ़ॉल्ट ssl का उपयोग करना निश्चित स्थिति में काम नहीं कर सकता है, 465 का उपयोग करना क्योंकि इस उत्तर ने वास्तव में मेरे लिए इसे ठीक कर दिया है
Temitayo

Iuse @Vikas उत्तर लेकिन मैंने तुम्हारा एक टुकड़ा इस्तेमाल किया था अर्थात 465 का उपयोग करते हुए emtp_port के रूप में। वैसे भी अच्छा काम
Temitayo

घातक त्रुटि: क्लास 'PHPMailer' C: \ xampp \ htdocs \ myweb \ email_script.php पर पंक्ति 82 में नहीं मिली
Shafizadeh

7

जैसा कि मैंने अपने व्यक्तिगत अनुभव में पाया कि विकास द्विवेदी के जवाब में बहुत कुछ ठीक है।

चरण 1 (php.ini फ़ाइल)

में स्थित php.ini फ़ाइल में xampp\php\php.ini। सेटिंग्स को निम्न में बदलें:

 extension=php_openssl.dll
 [mail function]
 sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
 mail.add_x_header=On

उनके सामने mail funcitonरख कर अन्य चर बंद ;करें। जैसे;smtp_port=25

चरण 2 (sendmail.ini फ़ाइल)

Sendmail.ini में स्थित xampp \ sendmail \ semdmail.ini में निम्न परिवर्तन करें:

 smtp_server=smtp.gmail.com
 smtp_port=465
 smtp_ssl=auto
 auth_username=address@gmail.com
 auth_password=YourPassword

चरण 3 (कोड)

एक php फ़ाइल बनाएँ और निम्नलिखित का उपयोग करें:

 <?php
    mail($to, "subject", "body", "From: ".$from);
 ?>

नोटिस

  • पुनः लोड करने के लिए आपको php.ini के लिए अपाचे को पुनरारंभ करना होगा।
  • आपको https://myaccount.google.com/u/1/security में Google कम सुरक्षित ऐप एक्सेस को सक्रिय करने की आवश्यकता है
  • यह एडमिन की अनुमति से Xampp चलाने में मदद कर सकता है।

2

इस कोड का उपयोग आपके लोकलहोस्ट XAMPP और आपके जीमेल अकाउंट के मेल के लिए किया जाता है। यह कोड बहुत आसान है और मेरे लिए काम कर रहा है अपने स्वयं की कोशिश करो।

नीचे बदलें php.ini फ़ाइल में

SMTP=smtp.gmail.com 
smtp_port=587 
sendmail_from = your@gmail.com 
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 
extension=php_openssl.dll 

नीचे बदलें sendmail.ini फ़ाइल में

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log 
auth_username=yourmail@gmail.com 
auth_password=your-gmail-password 
force_sender=yourmail@gmail.com  

ईमेल भेजने के लिए कृपया अपने PHP फ़ाइल में belove कोड लिखें

<?php 
    $to = "tomail@gmail.com";
    $subject = "Test Mail";
    $headers = "From: from_mail@gmail.com\r\n";
    $headers .= "Reply-To: replytomail@gmail.com\r\n";
    $headers .= "CC: theassassin.edu@gmail.com\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $message = '<html><body>';
    $message .= '<img src="//css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
    $message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
    $message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Email:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Type of Change:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Urgency:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>Details</td></tr>";
    $addURLS = 'google.com';
    if (($addURLS) != '') {
        $message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . $addURLS . "</td></tr>";
    }
    $curText = 'dummy text';           
    if (($curText) != '') {
        $message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
    }
    $message .= "<tr><td><strong>NEW Content:</strong> </td><td>New Text</td></tr>";
    $message .= "</table>";
    $message .= "</body></html>";

    if(mail($to,$subject,$message,$headers))
    {
        echo "Mail Send Sucuceed";
    }
    else{
        echo "Mail Send Failed";    
    }
?>

0

आपको इसके लिए एक SMTPसर्वर और एक पोर्ट को परिभाषित करना होगा। लाइव मेजबानों से मेल भेजने के अलावा सभी।

यह इस संबंध में एक उपयोगी कड़ी है

NB: बंदरगाह अप्रयुक्त होना चाहिए। कृपया ध्यान रखें कि, कुछ एप्लिकेशन Skypeडिफ़ॉल्ट पोर्ट का उपयोग करते हैं और मेल भेजने से रोकता है।


आप पोर्ट 80 का उपयोग करने से स्काइप को रोक सकते हैं। स्काइप की कनेक्शन सेटिंग्स पर
astroanu

0

इस काम को करने में केवल एक घंटे से अधिक का समय लगा। काम नहीं कर रहे सभी सुझावों के साथ एक ही परेशानी के लिए: आप अपने XAMPP inrerface में अपाचे को फिर से शुरू करना होगा! बस फिर से शुरू XAMPP अभ्यस्त काम !!


0

मैंने XAMPP लोकलहोस्ट से एक मेल भेजने के कई तरीके आज़माए, लेकिन चूंकि XAMPP में SSL सर्टिफिकेट नहीं है, इसलिए Gmail या इसी तरह के SMTP सर्विस प्रोवाइडर्स द्वारा ब्लॉक किया गया मेरा ईमेल अनुरोध।

फिर मैंने स्थानीय smtp सर्वर के लिए MailHog का उपयोग किया, जो आपको करने की आवश्यकता है वह बस इसे चलाएं। लोकलहोस्ट: 1025 smtp सर्वर के लिए है, लोकलहोस्ट: 8025 मेल सर्वर के लिए है, जहाँ आप भेजे गए ईमेल की जाँच कर सकते हैं।

यहाँ मेरा कोड है:

    require_once "src/PHPMailer.php";
    require_once "src/SMTP.php";
    require_once "src/Exception.php";

    $mail = new PHPMailer\PHPMailer\PHPMailer();

      //Server settings
    $mail->SMTPDebug = 3;                      // Enable verbose debug output
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'localhost';                    // Set the SMTP server to send through
    $mail->Port       = 1025;                                    // TCP port to connect to
    // $mail->Username   = '';                     // SMTP username
    // $mail->Password   = '';                               // SMTP password
    // $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    // $mail->SMTPSecure = 'tls';         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted

    //Recipients
    $mail->setFrom('testtoo@testto.com', 'Mailer');
    $mail->addAddress('testtoo@webbamail.com', 'Joe User');     // Add a recipient

    // Content
    $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 "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }

MailHog Github रिपोजिटरी लिंक


0

सभी उत्तरों के अलावा कृपया ध्यान दें कि sendmail.iniफाइल में:

schem_password = यह है- Not -your-Gmail-password

नए Google सुरक्षा चिंता के कारण, आपको इस उद्देश्य के लिए एप्लिकेशन पासवर्ड बनाने के लिए इन चरणों का पालन करना चाहिए:

  1. सुरक्षा टैब में https://accounts.google.com/ पर जाएं
  2. दो-चरणीय सत्यापन चालू करें
  3. सुरक्षा टैब पर वापस जाएं और एक ऐप-पासवर्ड बनाएं (चयन-ऐप ड्रॉप-डाउन मेनू में आप 'अन्य' चुन सकते हैं)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.