स्टेप बाय स्टेप: सबसे पहले उस फाइल को ढूंढें जहां एरर मैसेज दिखाई देता है। मैं फ़ाइलों में खोज करने के लिए नोटपैड ++ और CTRL+ Fकमांड का उपयोग करता हूं । त्रुटि संदेश के केवल पहले कुछ शब्दों को खोजना एक अच्छा विचार है, क्योंकि कुछ त्रुटि संदेश विभिन्न संदेशों के संयुक्त होते हैं।
आपका त्रुटि संदेश wp-login.phpऔर पवित्र भाग्य में ही दिखाई देता है । तो आइए नजर डालते हैं कि यह त्रुटि क्यों हो सकती है।
if ( $message && !wp_mail($user_email, $title, $message) )
दो शर्तें हैं। $messageसच होना चाहिए (खाली स्ट्रिंग नहीं, झूठी नहीं, अशक्त नहीं, आदि)। और wp_mail()झूठ नहीं लौटाना चाहिए।
एक पंक्ति ऊपर, एक फ़िल्टर है $message = apply_filters('retrieve_password_message', $message, $key);, इसलिए यह संभव है कि एक प्लगइन (या थीम) इस फ़िल्टर का उपयोग करता है और एक मान लौटाता है जो सही नहीं है (खाली स्ट्रिंग, गलत, अशक्त, आदि)।
लेकिन यह जांचना बहुत आसान है कि wp_mail()क्या काम कर रहा है या नहीं। अपने आप को एक परीक्षण मेल भेजने के लिए एक छोटा सा प्लगइन लिखें:
<?php
/**
* Plugin Name: Stackexchange Testplugin
* Plugin URI: http://yoda.neun12.de
* Description: Send me a test email
* Version: 0.1
* Author: Ralf Albert
* Author URI: http://yoda.neun12.de
* Text Domain:
* Domain Path:
* Network:
* License: GPLv3
*/
namespace WordPressStackexchange;
add_action( 'init', __NAMESPACE__ . '\plugin_init' );
function plugin_init(){
$to = 'your-email-adress@some-domain.tld';
$subject = 'Testemail';
$message = 'FooBarBaz Testmail is working';
wp_mail( $to, $subject, $message );
}
(यह PHP5.3 कोड है। यदि आप PHP5.2 चला रहे हैं, तो नाम स्थान की चीजों को हटा दें)
सक्रियण के तुरंत बाद प्लगइन को एक टेस्टमेल भेजना चाहिए। यदि नहीं, तो कुछ बैकेंड पेज (जैसे डैशबोर्ड) पर कॉल करना चाहिए।
यदि टेस्टीमेल नहीं आती है, तो आपके पास संभवतः एक मुद्दा है wp_mail()। इसलिए डिबगिंग चालू करें:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );
@ini_set( 'display_errors',1 );
इस कोड को अपने पास रखें wp-config.phpऔर अपने आप को एक टेस्टीमेल भेजने की कोशिश करें। अब आपको कुछ त्रुटि संदेश प्राप्त होने चाहिए और उन्हें भी लॉग इन किया जाना चाहिए wp-content/debug.log(यदि डिबग लॉग बहुत बड़े हो सकते हैं यदि प्लगइन्स और / या थीम के कारण अधिक त्रुटियां हैं)।
इस बिंदु पर, आपको असफलता मिली wp_mail()और यदि ऐसा है तो क्यों। अगर wp_mail()सही तरीके से काम किया गया और टेस्टीमेल आ गया, तो वापस ऊपर जाएं और पता करें कि $messageसच क्यों नहीं है।
यदि आपके पास समस्याएँ हैं wp_mail(), तो ध्यान रखें कि wp_mail()PHPs mail()फ़ंक्शन का उपयोग न करें । वर्डप्रेस एक PHP वर्ग ( PHPMailer ) का उपयोग करते हैं । हो सकता है कि आपको sendmail के बजाय SMTP का उपयोग करने के लिए एक प्लगइन की आवश्यकता हो । या समस्या किसी अन्य स्थान पर स्थित है। हम नहीं जानते। आपको जांच करनी होगी।