मेरे CentOS सर्वर के साथ ईमेल कैसे भेजें?


21

मैंने अभी CentOS 5.5 का उपयोग करके एक मामूली होम सर्वर बनाया है। मैं चाहता हूं कि सर्वर मेरे जीमेल खाते या अन्य ईमेल खातों को ईमेल भेजने में सक्षम हो, जैसे क्रोन जॉब्स। इसके अलावा अच्छा होगा कि मैं PHP एप्लिकेशन के माध्यम से ईमेल भेज सकूं, जो मैं सर्वर पर भी चलाऊं / विकसित करूं। या यहां तक ​​कि सर्वर के लिए मेल कमांड के माध्यम से ईमेल भेजने में सक्षम हो।

मुझे पता है कि आपके लिनक्स सर्वर को एक ईमेल सर्वर के रूप में स्थापित करने या सेंडमेल आदि को कॉन्फ़िगर करने के बारे में एक लाख Google खोज परिणाम हैं, लेकिन वे नहीं लगते कि मैं क्या देख रहा हूं ... कम से कम मुझे ऐसा नहीं लगता। मैं कुछ कॉरपोरेट सर्वर को सेटअप करने की कोशिश नहीं कर रहा हूं जो अन्य क्लाइंट को ईमेल भेजने या कुछ भी जटिल करने के लिए कनेक्ट कर सकते हैं।

मैं सिर्फ इतना चाहता हूं कि मेरा सर्वर मुझे सामान के बारे में ईमेल भेजे। ऐसा लगता है कि यह सरल होना चाहिए ... क्या कोई मुझे सही दिशा में इंगित कर सकता है?

अद्यतन करें

नीचे एक उपयोगकर्ता के अनुरोध के अनुसार, मैंने इस आदेश की कोशिश की:

/bin/mail -s "My Subject" "myaddress@gmail.com" < /home/john/test

कोई त्रुटि या कुछ भी नहीं। लेकिन ईमेल मेरे इनबॉक्स में कभी नहीं दिखा। मेरा यहाँ हैmaillog

Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: from=root, size=10906, class=0, nrcpts=1, msgid=<201010270652.o9R6qJhU013702@localhost.localdomain>, relay=root@localhost
Oct 27 00:52:19 localhost sendmail[13703]: o9R6qJOd013703: from=<root@localhost.localdomain>, size=11209, class=0, nrcpts=1, msgid=<201010270652.o9R6qJhU013702@localhost.localdomain>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: to=myaddress@gmail.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=40906, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o9R6qJOd013703 Message accepted for delivery)

कोई सुराग?


1
आपने कोशिश की है? आप किस तरह की समस्याएं देख रहे हैं?
इग्नासियो वाज़केज़-अब्राम्स

मुझे यकीन नहीं है कि मैं क्या देख रहा हूँ। मैं Google खोजता हूं और लिनक्स मेल सर्वर स्थापित करने के लिए ट्यूटोरियल देखता हूं। क्या मैं यही चाहता हूँ?
जेक विल्सन

बस ध्यान दिया यह अभी भी अनुत्तरित था। जिज्ञासा से बाहर, क्या आपने इसे समझ लिया है? क्या आपने जांच की कि क्या मशीन PBL पर सूचीबद्ध थी? spamhaus.org/pbl
Belmin फर्नांडीज

मुझे यह काम करने के लिए नहीं मिला। मैं अभी तक Sendmail को स्थापित करने की प्रक्रिया से नहीं गुजरा, क्योंकि नीचे दिए गए पोस्टर का मतलब है कि इसे केवल एक ईमेल भेजने की आवश्यकता नहीं होनी चाहिए। मैं कल्पना नहीं कर सकता कि मेरा छोटा होम सर्वर स्पैम सूची में सूचीबद्ध है क्योंकि मैंने इससे पहले कभी भी ईमेल नहीं भेजा है।
जेक विल्सन

मैंने एक ही परिणाम और उसी लॉग संदेश के साथ एक 10minutemail.com ईमेल खाते को भेजने के ऊपर सूचीबद्ध साधारण कमांड की भी कोशिश की
जेक विल्सन

जवाबों:


13

/bin/mail -s "Enter Subject Line here" -a /home/.../whateverFileYouWantAttached "you@YourEmailAddress" < /home/me/textBody.letter

कमांड के ऊपर प्रयास करें :)


1
+1 आपको मेल भेजने के लिए सिस्टम पर मेल सर्वर की जरूरत नहीं है, ठीक वैसे ही जैसे आपको मेल भेजने के लिए अपने डेस्कटॉप पर मेल सर्वर की जरूरत नहीं है। मेल प्रोग्राम ठीक है।
dunxd

1
मैंने इस कमांड की कोशिश की और यह काम नहीं किया। कोई त्रुटि या कुछ भी नहीं। बस मेरे जीमेल इनबॉक्स में कोई मेल नहीं दिखा रहा है। ऊपर देखिए कि मेरा मैलोडोग क्या कहता है
जेक विल्सन

तो ... किसी भी कारण से यह मेरे लिए काम नहीं कर रहा है? मुझे यह निर्धारित करने के लिए क्या लॉग देखना चाहिए कि मुझे कोई मेल क्यों नहीं मिल रहा है?
जेक विल्सन

6

सरल उत्तर:

Sendmail सेट करें । यह आपके वितरण पर निर्भर करेगा लेकिन यह बिल्कुल मुश्किल नहीं है। यदि आपके कोई विशिष्ट प्रश्न हैं, तो पूछें।

जटिल उत्तर:

आप इस पूछ रहे हैं, तो आप शायद सिर्फ बंदूक और सेटअप sendmail कूद नहीं करना चाहिए justtt अभी तक।

आपको कुछ बातों को ध्यान में रखना होगा:

  1. क्या आपका आईएसपी आपको ई-मेल भेजने की अनुमति देता है? आप गैर-सर्वर आईपी सीमा पर हो सकते हैं और इसलिए, कई ई-मेल प्रदाता आपके सीधे ब्लॉक करेंगे।

  2. पते के रूप में आप किस पते का उपयोग करेंगे? क्या आप इस पते (SPF, DomainKeys, आदि) से भेजने के लिए अधिकृत हैं? यदि नहीं, तो आपके संदेशों को ई-मेल प्रदाताओं द्वारा स्पैम के रूप में पता लगाया जा सकता है --- और सही तरीके से।

  3. अंतिम, लेकिन निश्चित रूप से कम से कम नहीं: क्या आपको वास्तव में अपनी एसएमटीपी सेवा का उपयोग करने की आवश्यकता है? आपके ISP का उपयोग करने का कोई कारण पर्याप्त अच्छा नहीं है?

वापस दिनों में, एसएमटीपी सर्वर स्थापित करना कोई बड़ी बात नहीं थी। आजकल, सेटअप आसान हो सकता है लेकिन इसे सेट करना ताकि यह वास्तव में लोगों के मेलबॉक्सों को संदेश प्राप्त हो , एक चुनौती है।


3

मैं पुष्टि कर सकता हूं कि उपरोक्त सुझावों में से कोई भी मेरे CentOS सिस्टम पर घर पर काम नहीं कर रहा है - एक भी नहीं। जो कष्टप्रद है!

तब मैंने CentOS 6.4 चलाने वाले अमेज़ॅन के एक ताजा उदाहरण पर भी यही कोशिश की, और डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ भी, मैं समस्याओं के बिना मेल भेज सकता हूं। मुझे बस इतना ही करना था

yum install mailx

जिसके बाद ऊपर बताए अनुसार मेल भेजना आकर्षण की तरह काम करता है। जकूब क्या करने की कोशिश कर रहा है, इसके लिए सेंडमेल जैसी जटिलताओं को स्थापित करना आवश्यक नहीं है।

यह मेरे ISP के साथ कुछ कॉन्फ़िगरेशन होना चाहिए, क्योंकि मुझे यहाँ मेरे अंत में एक विन्यास योग्य फ़ायरवॉल नहीं मिला है।


2

आपको निम्नलिखित करने की आवश्यकता है:

  1. sudo yum install postfix telnet mailx
  2. sudo /etc/init.d/postfix start
  3. sudo vi /etc/postfix/main.cf
  4. परिवर्तन mydestination = mydomain.com, localhost.mydomain.com, localhost

    सेवा मेरे

    mydestination = localhost.mydomain.com, localhost

कमांड लाइन से निम्नलिखित का उपयोग करके परीक्षण करें

  1. मेल address@example.com विषय:
  2. Demoslice.com टेस्ट से टेस्ट ईमेल
  3. ईमेल का मुख्य भाग।
  4. .

नंबर 4 - ईमेल के मुख्य भाग को पूरा करने के लिए एक पूर्ण विराम है। अब आपके पास मेल होना चाहिए।

ऊपर आपको एक काम करने वाला एमटीए (मेल ट्रांसफर एजेंट) मिलेगा। कुछ संसाधन जो आपको अधिक उन्नत सेटअप के साथ मदद करेंगे , उन्हें सेंटोस के लिए ईमेल सेटअप (सेंटोस और ईमेल अनुभाग पर नीचे स्क्रॉल करें) पर स्लाइसहोस्ट के लेखों में पाया जा सकता है । आपको वास्तव में निम्नलिखित को सही ढंग से सेट करने पर विचार करना चाहिए: होस्टनाम, आरडीएनएस (रिवर्स डीएनएस) और एसपीएफ (सेंडर पॉलिसी फ्रेमवर्क) अपने डीएनएस प्रदाता के साथ रिकॉर्ड।


यह एक शानदार जवाब है - छोटा और काम करता है।
भिक्षु

1

क्या आपने smtp एड्रेस सेट करने के लिए अपने /etc/mail.rc को संशोधित किया है?


1
की सामग्री /etc/mail.rcहै set ask askcc append dot save crt ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Viaआप मुझे क्या सुझाव दे रहे हैं क्या?
जेक विल्सन

0

पोस्टफ़िक्स को स्थापित करने की कोशिश करें और कॉन्फ़िगरेशन फ़ाइल में mydestination सेट करें यहां तक ​​कि इसे सेंडमेल के साथ काम करना चाहिए।


0

पोस्टफिक्स सही रास्ते पर है, लेकिन जब तक जीमेल को नहीं लगता कि आप कम से कम दूरस्थ रूप से वैध हैं (जैसे कि आप एक स्पैमर नहीं हैं) आपके मेल को डिलीवर किया जाना काफी संभावना नहीं है।

यहाँ पोस्ट करने के लिए प्रक्रिया थोड़ी सी शामिल है, लेकिन मैंने इसे प्राप्त करने का सबसे सरल तरीका (और आपके मेल को डिलीवर किया है) पोस्टफ़िक्स को रिले के रूप में स्थापित करना है, अपने स्वयं के जीमेल खाते को परिवहन के रूप में उपयोग करना।

मेरे द्वारा उपयोग की जाने वाली प्रक्रिया यहाँ विस्तृत है:

http://rs20.mine.nu/w/2011/07/gmail-as-relay-host-in-postfix/

स्वयं के हस्ताक्षर किए गए सेर की स्थापना की आवश्यकता नहीं है (प्रेषक के अनुसार) और मेरे अनुभव में, यह सिर्फ काम करता है!


0

आसान समाधान Sendmail नहीं है, लेकिन sendEmail:

http://caspian.dotconf.net/menu/Software/SendEmail/#download

एक पर्ल स्क्रिप्ट जिसे आसानी से आप जो भी एसएमटीपी सर्वर प्राप्त कर सकते हैं, के माध्यम से भेजने के लिए कॉन्फ़िगर किया गया है - मैं इसका उपयोग हर समय जीमेल खातों के माध्यम से भेजने के लिए करता हूं, लेकिन यह पोर्ट 25 पर टीसीपी पर साधारण एसएमटीपी के लिए भी काम करता है, आदि।

मैं आमतौर पर Gmail के लिए अपने स्वयं के शेल स्क्रिप्ट के साथ sendEmail perl स्क्रिप्ट लपेटता हूं:

#!/bin/bash

# Send gmail through an account specified in ~/.sendGmailAuthFile (or file identified with -k.)
# The auth file must have values for the -f (from@domain) and -xp (password) options of sendEmail,
# structured as:
#
#    user=me.surnamen@gmail.com
#    pwd=xxxxxxx
#
# We will fill in the rest, and other params are passed through to sendEmail
#
# Example: sendGmail -u "My subject line" -t "test@whatever.com" < message.txt

function sendGmailImmed {
        local authFile="$HOME/.sendGmailAuthFile"
        for arg in "$@"; do
                if [[ "$arg" == "-k" ]]; then
                        shift
                        authFile="$1"
                        shift
                fi
        done
        initAuthFile $authFile
        source $authFile

        sendEmail -f $user -xu $user -xp $pwd -s smtp.gmail.com:587 -o tls=yes "$@"
}

function initAuthFile {
        # If the authfile doesn't exist, we'll create a dummy:
        if [[ ! -f $1 ]]; then
                echo "# sendGmail authentication file: " > $1
                echo "user=my.name@gmail.com" >> $1
                echo "pwd=my-password" >> $1
                echo "A shell auth file has been created as $1"
        fi
}

if [[ -z $sourceMe ]]; then
        sendGmailImmed "$@"
fi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.