मेरे पास एक्सएएमपीपी के साथ विंडोज 10 स्थापित है। मैं देखना चाहता था कि विकास और परीक्षण उद्देश्यों के लिए PHP मेल() फ़ंक्शन ऑफ़लाइन के साथ ईमेल भेजने के परीक्षण के तरीकों के लिए मेरे विकल्प क्या हैं। मुझे ऐसा करने के लिए विंडोज़ पर तीन तरीके मिले और वे हैं ...

XAMPP + टेस्ट मेल सर्वर टूल XAMPP + पेपरकट XAMPP मेलटोडेस्क के साथ कॉन्फ़िगर किया गया

मैंने दो अलग-अलग PHP स्क्रिप्ट की कोशिश की। एक एक साधारण PHP मेल () स्क्रिप्ट है


mail('me@mail.com', 'MySubject', 'Message 123...');

?>

और दूसरा PHP मेल() और HTML ईमेल बनाने का अधिक उन्नत उपयोग है।

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";

$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>This email contains HTML Tags!</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

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

टेस्ट मेल सर्वर टूल और पेपरकट के साथ काम करने के लिए पहली PHP स्क्रिप्ट के लिए किसी कारण से मुझे php.ini में sendmail_from लाइन से सेमी-कोलन को हटाने की आवश्यकता है। अगर मैं सेमी-कोलन नहीं हटाता तो मुझे निम्न त्रुटि मिलती है।

Warning: mail(): Bad Message Returns Path in C:\xampp\htdocs\mailtestbasic.php on line 3

ऐसा क्यों है? जब मैं XAMPP के भीतर mailtodisk सेटअप करता हूं तो मुझे यह त्रुटि नहीं मिलती है और न ही मुझे यह त्रुटि दूसरी PHP स्क्रिप्ट के साथ मिलती है।

0
Peter 20 जून 2019, 03:47

1 उत्तर

सबसे बढ़िया उत्तर

त्रुटि संदेश थोड़े मजाकिया है क्योंकि इसमें एक टाइपो (वापसी पथ, वापसी पथ नहीं) है ...

अपना ईमेल भेजते समय आपको एक वैध return-path की आवश्यकता होती है। यदि sendmail_from को php.ini में असम्बद्ध नहीं किया गया है, तो यह Apache उपयोगकर्ता @ सर्वर नाम के लिए डिफ़ॉल्ट है, इसलिए शायद आपके देव वातावरण में apache@localhost जैसा कुछ है, जिसे किसी भी SMTP द्वारा अस्वीकार कर दिया जाएगा।

इसलिए, इसे php.ini में एक मान्य होस्टनाम पर सेट करना महत्वपूर्ण है (उपयोगकर्ता का हिस्सा वास्तव में कोई मायने नहीं रखता है, लेकिन यह पोस्टमास्टर ईमेल पर ट्रैफ़िक उत्पन्न करेगा यदि प्राप्तकर्ता या रिटर्न-पथ मान्य नहीं है)।

आप इसे mail() के additional_parameters पैरामीटर के माध्यम से भी सेट कर सकते हैं, उदाहरण #4 को https://www.php.net/manual/en/function.mail.php

पुनश्च: sendmail_from यदि आप ईमेल हेडर से परिचित नहीं हैं तो भ्रमित हो सकते हैं यह वास्तव में return-path हेडर जेनरेट करता है जो ईमेल बाउंस होने की स्थिति में उपयोग किया जाएगा। बाउंस किए गए ईमेल From पर नहीं जाएंगे जिन्हें आप अपने हेडर में परिभाषित करते हैं, क्योंकि इसका उपयोग केवल प्रेषक को प्रदर्शित करने के लिए किया जाता है (और ईमेल का जवाब देते समय उपयोग किया जाता है, जब तक कि आप एक reply-to हेडर भी परिभाषित नहीं करते हैं जो हो सकता है From वाले से अलग।

1
Capsule 20 जून 2019, 02:08