Linux “posta” komutunu kullandığımda posta gerçekten nasıl gönderilir?


17

mailLinux terminalindeki komutu aşağıdaki gibi kullanırken bir e-posta göndermek için hangi e-posta hesabı kullanılır :

echo "Body of email" | mail -s "Subject" abc@def.com

E-postalar gönderilmiyorsa, gönderen bir e-posta adresinin kullanıcı adını ve parolasını belirtmeniz gerekir mi? mailOkuduğum tüm eğiticiler gönderen adresi hakkında hiçbir şey belirtmiyor.

Düzenleme: Yani "Uzak etki alanlarına postalama desteklenmiyor" etkisi için bir hata iletisi alırsam, bu benim ISS e-posta göndermeyi engelledi anlamına mı geliyor? Bunun etrafında bir yol var mı? Teşekkürler.

Yanıtlar:


12

Linux terminalinden posta komutunu aşağıdaki gibi kullanırken e-posta göndermek için hangi e-posta hesabı kullanılır:

Varsayılan yapılandırmalarda, oturum açmak için kullandığınız hesapla aynıdır. Bilgisayarınızda yüklü bir posta sunucusu programı (MTA) vardır; genellikle Postfix veya Exim4, bazen Sendmail veya qmail.

Bu hesabın e-posta adresi veya FQDN'nin nereden edinilebileceği . Ancak, şu an posta alamıyor için MTA (hata mesajı aşağıda söylediği gibi) "yalnızca yerel posta" için yapılandırılmış ve dışarıdan gelen mesajları kabul etmemesi nedeniyle, bu hesaba.your-login@hostnameyour-login@fqdnhostname -f

Düzenleme: Yani "Uzak etki alanlarına postalama desteklenmiyor" etkisi için bir hata iletisi alırsam, bu benim ISS e-posta göndermeyi engelledi anlamına mı geliyor? Bunun etrafında bir yol var mı?

Hayır; bu hata iletisi kendi bilgisayarınız tarafından döndürülür. Posta sunucusu yalnızca yerel postayı - bir kullanıcıdan diğerine (en yaygın olarak, bir cronjob başarısız olursa , cron arka plan programından) aktarmak üzere yapılandırılmıştır . Genellikle bu mesajlar gidip ve okunabilir kullanarak vardır , , veya benzeri programlar. (IIRC, Thunderbird yerel posta biriktiricileri de içe aktarabildi.)/var/mail/loginmailmuttre-alpine

Posta sunucusunu başka sitelere posta göndermek ve almak üzere yeniden yapılandırmak zor değildir; kurulu MTA ve Linux dağıtımına bağlı olarak, tek bir komut bile yeterli olabilir: örneğin, dpkg-reconfigure postfixsistem Postfix ile Debian ise.

Ancak, bunu kişisel bir bilgisayarda kullandığınızı tahmin ediyorum, bu nedenle harici bir posta hesabı kullanmak daha iyi olur - örneğin Gmail adresiniz varsa. Hangi MTA'nın kurulu olduğunu öğrenin (Ubuntu / Debian'da dpkg -S /usr/sbin/sendmailsize söyleyecektir), ardından program-name relay gmailbir eğitim için " " için google .

Alternatif olarak, geçiş için özel olarak tasarlanmış bir MTA takın; msmtpve esmtpiyi seçimler ve yapılandırması kolaydır.


Tüm yardımlarınız için teşekkürler. Önerdiğiniz yapıştırma komutu ihtiyaçlarımı karşıladı. Posta geçişi için akıllı ana makine kurulumu üzerinde çalışacağım.
user001

4

Örneğin, gönderen kullanıcının hesap adı ve ana bilgisayar adıdır root@myserver. Dışarıdan e-posta alabilecek gerçek bir posta kutusu olması gerekmez.


2
@ user001 Bu yardımcı oluyor mu ?
Daniel Beck

2
@ user001: Bu gibi durumlarda, bazıları komut satırından kullanımı kolay olan pastebinlere bakabilirsiniz . Örneğin curl -Fsprunge=\<- http://sprunge.us < myfile,.
user1686

1
@ user001: exim4Daemon'u çalıştırıyor musunuz? Does sudo mailqmesajı listelemek? Gönderen sunucunun ( /var/log/exim4/mainlog) ve alıcının (mümkünse) günlüklerini kontrol ettiniz mi?
user1686

1
@ user001: İSS'niz bağlantıyı engelliyor olabilir. Bu özellikle ev bağlantılarında yaygındır - enfekte PC'ler tarafından gönderilen büyük miktardaki spam miktarını azaltmak için 25 numaralı bağlantı noktasına kadar her şey düşüyor. (Yine de farklı bir bağlantı noktası ve SMTP kimlik doğrulaması kullanan geçişi yapılandırabilirsiniz .)
user1686 21

1
@ user001: Geçiş başka bir posta sunucusu üzerinden gerçekleşir (bazen "akıllı ana makine" olarak da adlandırılır). Akademinin kendi posta etki alanı varsa ağ yöneticileriniz bu konuda yardımcı olabilir. Değilse, sunucunuzu Gmail'inizden veya benzer posta kutunuzdan gönderecek şekilde yapılandırabilirsiniz; öğreticiler burada .
user1686

4

Mail komutu geçerli hesap altındaki postaları gönderir, yani kullaniciadi @ domain; ancak, genellikle internet servis sağlayıcıları spam önlemek için kullanıcıların kendi posta sunucularını (ilgili bağlantı noktalarını engelleyerek) çalıştırmasını engeller ve bu nedenle e-postanız gönderilmez.

Ancak gönderme sorunu, makinenizin yapılandırmasıyla da ilgili olabilir.

Düzenle: postanın, örneğin gmail'den e-posta göndermesini sağlama. Posta ile ilgili temel yapılandırma sağlayan ~ / .mailrc dosyanıza aşağıdaki bilgileri ekleyin. Ancak, bu dosyanın yalnızca sizin için erişilebilir olduğundan emin olun (chmod 600 ~ / .mailrc kullanarak)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set smtp-auth-user=name@gmail.com
set smtp-auth-password=pass
set from=name@gmail.com
}

Bu durumda e-posta "name@gmail.com" adresinden gelecek.


@ user001: Yalnızca e-posta (örn. komut dosyalarından) gönderebilmek mi yoksa almak mı istiyorsunuz?
Karolos

Sadece bir senaryodan mesaj gönderebilmek için. Teşekkürler.
user001

2
Bu mailrcsözdiziminin belirli olduğunu unutmayın heirloom-mailx. Bazı sistemler GNU mailutilsveya BSD ile birlikte gelebilir mailx, her ikisi de sözdizimi hatalarından şikayetçidir. (Bu durumda, yüklemeyi öneririm heirloom-mailx- veya daha iyisi muttveya re-alpine.)
user1686

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.