2009-08-27 15 views
5

हम एक वेब ऐप बनाना शुरू कर रहे हैं। मेरा सहयोगी लिनक्स पर विकसित हो रहा है, और मैं एक एक्सएएमपी स्टैक चल रहा विंडोज एक्सपी के माध्यम से चल रहा हूँ। हम ज़ेंड का उपयोग कर रहे हैं।PHP ईमेल पर मेल भेजता है जिससे ईमेल भेजने के बाद 'लटका' होता है

जब हम एक फॉर्म जमा करते हैं और ज़ेंड ईमेल का उपयोग करके एक ईमेल भेजते हैं, तो ईमेल भेजता है और फिर मुझे एक खाली स्क्रीन मिल जाएगी, लिनक्स मशीन पर वेरास ऐप सामान्य रूप से जारी रहेगा।

इसलिए मैंने अपनी छोटी लिपि, mail.php लिखा जो phpmailer का उपयोग करता है - और सटीक वही होता है, ईमेल भेजता है, और फिर रिक्त स्क्रीन। तो हमने:

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

तो वहाँ कोई त्रुटि की सूचना दी है, ईमेल भेजता है, लेकिन "संदेश भेज दिया गया है" स्क्रीन (या कुछ और भी सामान्य HTML) के लिए कभी नहीं प्रिंट करता है।

मैं बहुत तकनीकी नहीं हूं, इसलिए अगर कुछ डीबग कदम उठाने के लिए माफी मांगती है। क्या विंडोज़ PHP कॉन्फ़िगरेशन के लिए कुछ अनोखा है जिसे मैंने याद किया है?

यह प्रमाणीकरण के साथ एक ऑफ-साइट एसएमटीपी सर्वर है।

उत्तर

0

इसका उत्तर देने में इतने लंबे समय तक क्षमा करने के लिए क्षमा चाहते हैं। समस्या आउटबाउंड एसएमटीपी यातायात को अवरुद्ध करने वाले कार्यालय में फ़ायरवॉल के कारण हुई थी। मुझे अभी भी यकीन नहीं है कि यह कुछ भी क्यों नहीं लौटा - लेकिन इस कार्यालय के बाहर जब यह परीक्षण किया गया था तो अवैध smtp आदि के लिए php त्रुटियों का ठीक हो गया। नेटवर्क पर उचित बंदरगाहों को अनुमति देने का सिर्फ एक मामला।

उनकी मदद के लिए सभी को धन्यवाद।

1

लगता है जैसे आपको कोई त्रुटि मिल रही है, लेकिन इसे देख नहीं रहा है। आप अपने कोड

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

में यह कहीं और 500 त्रुटियों के लिए अपने अपाचे लॉग निरीक्षण के रूप में अच्छी तरह से सुनिश्चित करें।

+0

हाय पीटर। उत्तर देने के लिए बहुत बहुत धन्यवाद। मैंने आपके द्वारा सुझाई गई लाइनों को जोड़ा और अभी भी मुझे एक खाली स्क्रीन मिल गई है। अपाचे कोई त्रुटि नहीं दिखाता है जो मैं देख सकता हूं, अपाचे एक्सेस लॉग में अंतिम प्रविष्टि है: 127.0.0.1 - - [27/अगस्त/200 9: 20: 17: 08 +0100] "GET /mail.php HTTP/1.1" 200 प्राप्त करें - जो ठीक लगता है? – Dave

1

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

<?php 
phpinfo(); 
?> 

यह पीएचपी कोर खंड में स्थित होना चाहिए - अगर यह खाली है, अपने php.ini फ़ाइल को संपादित करें और log_errors पर कर देते हैं और निर्दिष्ट जहाँ आप चाहते हैं फाइल होने के लिए।

त्रुटियां जिन्हें मैं प्रदर्शित नहीं कर सका, मुझे इसका उपयोग करने में मिला है।

अद्यतन

कुछ खुदाई किया और ऐसा लगता है कि Zend_Mail अनिवार्य रूप से PHP के मेल के लिए एक आवरण() फ़ंक्शन प्रलेखन के अनुसार है: http://framework.zend.com/manual/en/zend.mail.html

इसे ध्यान में रखते

वहाँ पीएचपी के मेल पर कुछ जानकारी (है) PHP मैनुअल में फ़ंक्शन जो आप SendMail http://www.php.net/manual/en/ref.mail.php पृष्ठ पर पहली टिप्पणी (इस लेखन के रूप में) के बारे में देखना चाहते हैं, आपके पास WAMP सर्वर को * nix सर्वर की तरह व्यवहार करने के लिए सभी विवरण हैं - कम से कम जहां तक ​​मेल() ऑपरेशन जाते हैं ;-)

1

मैं विंडोज़ बॉक्स (मेरी देव मशीन) पर सफलता के साथ phpmailer का उपयोग करता हूं। क्या मैं सेटअप कोड देख सकता हूं? मैं नीचे की तरह कुछ करता हूँ। एक बात यह है कि आपको यह सुनिश्चित करने की ज़रूरत है कि अगर आप एसएसएल का उपयोग कर रहे हैं तो PHP में openssl मॉड्यूल स्थापित है। नीचे एक नज़र डालें। सुनिश्चित करें कि आपका SMTPDebug ध्वज कुछ आउटपुट के लिए सेट है जिसे आप काम कर सकते हैं।

<?php 

$mail    = new PHPMailer(); 

$mail->IsSMTP(); 
$mail->Host  = "blah.com"; 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = "ssl"; 
$mail->Host  = "mail.blah.com"; 
$mail->Port  = 465; 
$mail->Username = "[email protected]"; 
$mail->Password = "smtppass"; 

$mail->SetFrom('[email protected]', 'Blah Name'); 
$mail->AddReplyTo("[email protected]", "Blah Name"); 
$mail->Sender = "[email protected]" 

?> 
संबंधित मुद्दे