2011-05-06 17 views
7

मेरे आईएसपी ने PHP से मेल भेजने के लिए पोर्ट 25 को अवरुद्ध कर दिया है, और इसके बजाय पोर्ट 587 या 465 का उपयोग करने की अनुमति दी है। डिफ़ॉल्ट 25 के बजाय पोर्ट 587 का उपयोग करने के लिए मैं PHP मेल फ़ंक्शन को कैसे बल दूं? Btw: मैं MAMP प्रो का उपयोग कर25 से 587 तक एसएमटीपी पोर्ट बदलें?

अद्यतन पर OSX 10.6.6 हूँ: मैं इस

[mail function] 
; For Win32 only. 
SMTP = localhost 
smtp_port = 587 

को php.ini में सेटिंग बदल कर की कोशिश की के रूप में मैं मैक पर हूँ मैं इस नहीं लगता कि यह कर सकते हैं मेरे लिए समाधान हो, और यह कोशिश करने के बाद यह काम नहीं कर रहा है। यह मुझे त्रुटि संदेश निम्नलिखित देता है।

May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2822]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2823]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2827]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2825]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2828]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 

क्या आप देखते हैं कि यह अभी भी पोर्ट 25 के माध्यम से कनेक्ट करने का प्रयास कर रहा है? मैं इसे मैक में कैसे बदलूं?

उत्तर

5

smtp_port बदलने से केवल कैसे प्रभावित करता mail() सर्वर SMTP सेटिंग से निर्दिष्ट साथ सूचना का आदान: कुछ इस तरह होना चाहिए। यह मुद्दा नहीं है। - और

  • आपका ISP जीमेल
  • पहले के लिए बाहर के प्रसारण संदेशों से अपने स्थानीय एसएमटीपी सर्वर (पोस्टफ़िक्स) ब्लॉक कर रहा है

    1. आप एसएमटीपी सर्वर के रूप में अपने स्थानीय मशीन का उपयोग कर रहे हैं: मुद्दा यह है कि है , read this thread। यह एक ही सटीक मुद्दे पर चर्चा करता है। उपरोक्त यह है कि आपको एक अलग मेल सर्वर का उपयोग करने की आवश्यकता है, अधिमानतः आपके आईएसपी मेल सर्वर। यदि आप अपनी ईमेल सेवाओं का उपयोग करना चाहते हैं तो आपके आईएसपी आपको आउटबाउंड मेल के लिए किस सर्वर और पोर्ट का उपयोग करने के लिए कहता है? आप इसे अपने PHP से स्थानीय रूप से चलने में सक्षम होना चाहिए जैसे कि आप एक ईमेल क्लाइंट जैसे थंडेबर्ड - और आप जीमेल को भेजने में सक्षम होंगे।

    +0

    पर एक नज़र डालें, मैंने जीमेल के एसएमटीपी सर्वर का उपयोग किया और कुछ पोस्टफिक्स कॉन्फ़िगरेशन फ़ाइल संपादित की और यह पूरी तरह से ठीक काम करता है। उस टिप के लिए धन्यवाद। –

    3

    अपने php.ini में smtp_port = 587 सेट करें। आप अपने स्थानीय पोस्टफ़िक्स या sendmail, जो आप smtp = localhost निर्दिष्ट करने के द्वारा कर उपयोग कर रहे हैं http://php.net/manual/en/mail.configuration.php

    संपादित

    के रूप में ए जे बताया गया है, इस समस्या को ठीक नहीं होगा देखें। इसके बजाय अपने आईएसपी के एसएमटीपी सर्वर पते पर सेट करने का प्रयास करें।

    इससे अगली समस्या हो सकती है यदि उन्हें मेल भेजने की अनुमति देने से पहले प्रमाणीकरण की आवश्यकता होती है, जो कई आईएसपी करते हैं। उस स्थिति में, आपकी सर्वश्रेष्ठ शर्त Pear Mail package होगी। यह आकस्मिक रूप से आपको आपकी स्क्रिप्ट में मेल सर्वर और पोर्ट निर्दिष्ट करने की अनुमति देगा। प्रलेखन से: (आप उपयोग कर सकते है अगर)

    $params["host"] - The server to connect. Default is localhost. 
    $params["port"] - The port to connect. Default is 25. 
    $params["auth"] - Whether or not to use SMTP authentication. Default is FALSE. 
    $params["username"] - The username to use for SMTP authentication. 
    $params["password"] - The password to use for SMTP authentication. 
    
    +0

    यह केवल विंडोज के तहत प्रयुक्त होता है, लेकिन आप देखते हैं कि मैं मैक पर हूं, मै मैक में इसे कैसे बदलूं? –

    +0

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

    +0

    मैंने अपनी पोस्ट अपडेट की है। कृपया –

    1

    आप अपने php.ini फ़ाइल संपादित कर सकते हैं और smtp_port = 587 या अपने कोड में, ini_set('smtp_port', 587) निर्धारित किया है।

    0

    यदि आप कर सकते हैं, तो ini_set() के साथ smtp_port सेटिंग को ओवरराइड करने का प्रयास करें।

    ini_set('smtp_port', 587); 
    
    0

    आप में से उन लोगों के लिए एमएएमपी का उपयोग करना और आईएसपी (मेरे मामले में) द्वारा बंद किए जा रहे बंदरगाह 25 के कारण PHP मेल() फ़ंक्शन से मेल भेजने में सक्षम नहीं है, यहां कुछ हल करने के लिए कुछ जानकारी दी गई है। चूंकि ओएसएक्स मेल भेजने के लिए पोस्टफिक्स का उपयोग करता है और यदि आप बाहरी smtp सर्वर जैसे smtp.gmail.com का उपयोग करने की योजना बनाते हैं, जिसका मैंने यहां उपयोग किया है, आपको यह करना चाहिए।आप

    एक) ओपन MAMP और पोस्टफ़िक्स में जाने वाली मेल के डोमेन को बदलने smtp.gmail.com को

    ख) खुला टर्मिनल और sudo vi /etc/postfix/main.cf इस वसीयत टाइप एक रिले मेजबान के रूप में Gmail का उपयोग करने पोस्टफिक्स विन्यस्त करने की जरूरत अपने एडमिन पासवर्ड के लिए पूछें इसे दर्ज करें और यह vi संपादक में मुख्य.cf खोल देगा

    सी) ctrl + f दबाएं और फ़ाइल के अंत में आएं और कर्सर को एक पंक्ति को अंत से नीचे लाएं और दबाएं , संपादक अब फ़ाइल को संपादित करने के लिए सम्मिलित मोड में स्विच करेगा।

    main.cf में संलग्न इस सेटिंग

    relayhost = [smtp.gmail.com]:587 
    
    smtp_tls_security_level = verify 
    #smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt 
    smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache 
    
    smtp_sasl_auth_enable = yes 
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
    smtp_sasl_security_options = noanonymous 
    

    प्रेस : wq vim बाहर निकलने के लिए।

    [smtp.gmail.com]:587 [email protected]:mypassword 
    

    फिर प्रेस: ​​ wq को बचाने के लिए और फ़ाइल छोड़ दी, और चलाने के लिए निम्न आदेश

    sudo postmap /etc/postfix/sasl_passwd 
    sudo postfix reload 
    
    खोल प्रकार में वापस sudo vi /etc/postfix/sasl_passwd और निम्न (अपना Gmail पता और जीमेल पासवर्ड स्थानापन्न) दर्ज

    उम्मीद है कि यह किसी भी समस्या का सामना करने में मदद करेगा।

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