Bagaimana cara mengirim email dengan server CentOS saya?


21

Saya baru saja membangun server rumah sederhana menggunakan CentOS 5.5. Saya ingin server dapat mengirim email ke akun Gmail saya atau akun email lain untuk berbagai hal seperti pekerjaan cron. Juga akan menyenangkan untuk dapat mengirim email melalui aplikasi PHP yang saya jalankan / kembangkan di server juga. Atau bahkan dapat bagi server untuk mengirim email melalui perintah surat.

Saya tahu ada sejuta hasil pencarian Google tentang pengaturan server Linux Anda sebagai server email atau konfigurasi sendmail dll. Tetapi sepertinya itu bukan yang saya cari ... setidaknya saya tidak berpikir begitu. Saya tidak mencoba menyiapkan beberapa server korporat yang dapat disambungkan klien lain untuk mengirim email atau hal-hal rumit seperti itu.

Saya hanya ingin server saya mengirimi saya email tentang barang. Sepertinya itu harus sederhana ... Adakah yang bisa mengarahkan saya ke arah yang benar?

MEMPERBARUI

Sesuai permintaan pengguna di bawah, saya mencoba perintah ini:

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

Tidak ada kesalahan atau apa pun. Tetapi email itu tidak pernah muncul di kotak masuk saya. Ini milik sayamaillog

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)

Ada petunjuk?


1
Sudahkah Anda mencoba? Masalah apa yang Anda lihat?
Ignacio Vazquez-Abrams

Saya tidak yakin apa yang saya cari. Saya mencari Google dan melihat tutorial untuk menyiapkan Server Mail Linux. Itukah yang saya inginkan?
Jake Wilson

Hanya memperhatikan ini masih belum terjawab. Karena penasaran, sudahkah Anda menemukan jawabannya? Apakah Anda memeriksa apakah mesin terdaftar di PBL? spamhaus.org/pbl
Belmin Fernandez

Saya tidak membuatnya bekerja. Saya belum melalui proses menginstal sendmail, karena poster di bawah ini menyiratkan bahwa seharusnya tidak perlu hanya mengirim satu email. Saya tidak bisa membayangkan server rumah kecil saya terdaftar di daftar spam karena saya bahkan tidak pernah mengirim email darinya.
Jake Wilson

Saya bahkan mencoba perintah sederhana yang saya sebutkan di atas mengirim ke akun email 10minutemail.com dengan hasil dan pesan log yang sama
Jake Wilson

Jawaban:


13

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

coba perintah di atas :)


1
+1 Anda tidak perlu server email pada sistem untuk mengirim email, sama seperti Anda tidak perlu server email di desktop Anda untuk mengirim email. Program surat baik-baik saja.
dunxd

1
Saya mencoba perintah ini dan tidak berhasil. Tidak ada kesalahan atau apa pun. Tidak ada surat yang muncul di kotak masuk gmail saya. Lihat di atas pada apa kata maillog saya
Jake Wilson

Jadi ... ada alasan mengapa ini tidak berhasil untuk saya? Log apa yang harus saya cari untuk menentukan mengapa saya tidak menerima surat apa pun?
Jake Wilson

6

Jawaban sederhana:

Siapkan sendmail . Ini akan tergantung pada distribusi Anda tetapi ini tidak sulit sama sekali. Jika Anda memiliki pertanyaan spesifik, tanyakan saja.

Jawaban rumit:

Jika Anda bertanya ini, Anda mungkin harus tidak hanya melompat pistol dan setup sendmail justtt belum.

Anda harus mempertimbangkan beberapa hal:

  1. Apakah ISP Anda mengizinkan Anda mengirim email? Anda mungkin berada pada rentang IP non-server dan karenanya, banyak penyedia email akan memblokir Anda secara langsung.

  2. Alamat apa yang akan Anda gunakan sebagai alamat dari Anda? Apakah Anda berwenang mengirim dari alamat ini (SPF, DomainKeys, dll)? Jika tidak, pesan Anda mungkin terdeteksi sebagai spam oleh penyedia email --- dan memang seharusnya begitu.

  3. Terakhir, tetapi tentu tidak kalah pentingnya: Apakah Anda benar-benar perlu menggunakan layanan SMTP Anda sendiri? Adakah alasan mengapa menggunakan ISP Anda tidak cukup baik?

Kembali pada hari-hari, menyiapkan server SMTP bukanlah masalah besar. Saat ini, pengaturan mungkin lebih mudah tetapi pengaturannya sehingga benar - benar mendapatkan pesan ke kotak surat orang , adalah sebuah tantangan.


3

Saya dapat mengkonfirmasi bahwa tidak ada saran di atas yang bekerja pada sistem CentOS saya di rumah juga - tidak satu pun. Itu menyebalkan!

Kemudian saya mencoba hal yang sama pada contoh Amazon baru yang menjalankan CentOS 6.4, dan bahkan dengan konfigurasi default, saya dapat mengirim email tanpa masalah. Yang harus saya lakukan adalah

yum install mailx

setelah itu mengirim surat seperti dijelaskan di atas berfungsi seperti jimat. Memasang komplikasi seperti sendmail TIDAK diperlukan untuk apa yang Jakub coba lakukan.

Pasti ada konfigurasi dengan ISP saya, karena saya belum punya firewall yang bisa dikonfigurasi di sini.


2

Anda perlu melakukan hal berikut:

  1. sudo yum install postfix telnet mailx
  2. sudo /etc/init.d/postfix start
  3. sudo vi /etc/postfix/main.cf
  4. Perubahan mydestination = mydomain.com, localhost.mydomain.com, localhost

    untuk

    mydestination = localhost.mydomain.com, localhost

Tes menggunakan yang berikut dari baris perintah

  1. mail address@example.com Subjek:
  2. Uji email dari Tes demoslice.com
  3. isi email.
  4. .

Nomor 4 - hanya ada pemberhentian penuh untuk melengkapi isi email. Anda sekarang harus memiliki surat.

Di atas akan membuat Anda MTA (Mail Transfer Agent) yang berfungsi. Beberapa sumber daya yang akan membantu Anda dengan pengaturan lebih lanjut dapat ditemukan di artikel slicehost tentang pengaturan email untuk CentOS (gulir ke bawah ke bagian CentOS dan Email). Anda harus benar-benar mempertimbangkan pengaturan berikut dengan benar: hostname, RDNS (Reverse DNS) dan catatan SPF (Sender Policy Framework) dengan penyedia DNS Anda.


Ini adalah jawaban yang brilian - singkat dan berhasil.
monkjack

1

Sudahkah Anda memodifikasi /etc/mail.rc untuk menetapkan alamat smtp?


1
Isinya /etc/mail.rcadalah set ask askcc append dot save crt ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path ViaApa yang Anda sarankan agar saya lakukan?
Jake Wilson

0

Coba instal postfix & atur mydestination di file konfigurasi walaupun itu akan berfungsi dengan sendmail.


0

Postfix ada di jalur yang benar, tetapi kecuali jika gmail menganggap Anda setidaknya sah dari jarak jauh (mis. Anda bukan spammer) pengiriman email Anda kemungkinan besar tidak akan terjadi.

Prosesnya sedikit terlibat untuk memposting di sini, tetapi cara paling sederhana yang saya temukan untuk mencapai ini (dan mengirim email Anda) adalah dengan mengatur postfix sebagai relay, menggunakan akun gmail Anda sendiri sebagai transportasi.

Proses yang saya gunakan dijelaskan di sini:

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

Tidak diperlukan pengaturan sertifikat yang ditandatangani sendiri (sesuai sendmail) dan menurut pengalaman saya, hanya berfungsi!


0

Solusi mudah bukan sendmail, tetapi sendEmail:

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

Skrip perl yang mudah dikonfigurasikan untuk dikirim melalui server SMTP apa pun yang bisa Anda peroleh - Saya menggunakannya untuk mengirim melalui akun Gmail sepanjang waktu, tetapi juga berfungsi untuk SMTP biasa melalui TCP pada port 25, dll.

Saya biasanya membungkus skrip perl sendEmail dengan skrip shell saya sendiri untuk Gmail:

#!/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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.