linux terminalinden bir satıra posta gönderme [kapalı]


148

mailLinux'ta komut satırı yoluyla e-posta gönderme komutunun olduğunu biliyorum . Yine de bir hattan terminalden basit bir e-postayı nasıl gönderebilirim?

Örneğin:

mail user@gmail.com [subject] [body]

Ve e-posta kullanıcıya herhangi bir onay veya bilgi istemi olmadan gönderildi mi?

Bunun nedeni, bir javaprogramda belirli bir olay meydana geldiğinde kendime e-posta yoluyla kısa bir mesaj göndermek istiyorum . Fikir, benim programdan Runtime.getRuntime()göndermek için… vb. Kullanacağım .mail commandjava

Eskiden cronbenzer bir şey yapıyordum, ama mevcut uygulama kullanmıyor cron, bu yüzden bunu denemem gerekiyor.


Kullanım bulk mail CLI, etkin ve güçlü bir araç sadece tek bir kolay komutuyla bir posta listesine dinamik e-postalar göndermek: bulkmail mail! Bu küçük ama güçlü araç ile, hızlı mini, sorunsuz e-posta pazarlama Do 💌 bulkmail.now.sh
Kumar Abhirup

Yanıtlar:


209

mail , linux sistemindeki epeyce programı temsil edebilir. Bunun arkasında istediğiniz şey sendmail veya postfix . Ben ikincisini öneririm.

En sevdiğiniz paket yöneticinizden kurabilirsiniz. Ardından yapılandırmanız gerekir ve bunu yaptıktan sonra, bunun gibi bir e-posta gönderebilirsiniz:

 echo "My message" | mail -s subject user@gmail.com

Daha fazla bilgi için kılavuza bakınız.

Postfix'i yapılandırmaya gelince, internette nasıl yapılacağı hakkında birçok makale var. Kayıtlı bir etki alanına sahip genel bir sunucuda değilseniz, genellikle e-postayı e-posta gönderebileceğiniz bir SMTP sunucusuna yönlendirmek istersiniz.

Örneğin, gmail için http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ veya benzer herhangi bir öğreticiyi izleyin .


4
Postfix güçlü ancak sadece e-posta göndermeniz gerekiyorsa "ssmtp" yi deneyin. Bu paket daha küçüktür ve postfix gibi bir arka plan programı çalıştırmaz. Güvenli protokolleri destekler ve gmail ile çalışır.
o

6
"'Mail' programı şu anda yüklü değil. Yazarak yükleyebilirsiniz: apt-get install mailutils"
Tom

daha hafif: paketler nullmailerartı bsd-mailx. Çoğu iş istasyonu için yeterlidir :) Ve nullmailerbir sendmailarayüz içerdiği gibi , bsd-mailxpaketi atlayabilir ve Hengjie'nin yaklaşımını kullanabilirsiniz .
Izzy

@ oᴉɹǝɥɔ ssmtpkullanımdan kaldırılmıştır. msmtpBunun yerine kullanın .
Matt M.


32
echo "Subject: test" | /usr/sbin/sendmail user@domain.com

Bu, bir metin dosyasını tekrarlamak zorunda kalmadan tek bir komut satırı içinde yapmanızı sağlar. Bu cevap @ mti2935 cevabının üzerine kuruludur. Yani kredi oraya gidiyor.


2
Sadece konu ve beden için cevaba eklemek için: echo -e "Konu: test \ n \ n Burada vücut içeriği \ n" | sendmail user@domain.com
emvidi

13

Sendmail'i de kullanabilirsiniz:

/usr/sbin/sendmail user@domain.com < /file/to/send

Not: Postfix + S-Nail var. Bu benim için işe yaradı. Önce "Rohit Gupta" yanıtını kullandım ve posta yardımcı programlarını indirdim, sonra sizinkini ve her şey işe yaradı.
Mohammed Baashar

13

Ubuntu kullanıcıları için: Önce mailutils kurmanız gerekiyor

sudo apt-get install mailutils

Gmail veya smtp kullanıyorsanız bir e-posta sunucusu kurun. bu bağlantıyı takip edin . ardından e-posta göndermek için bu komutu kullanın.

echo "this is a test mail" | mail -s "Subject of mail" username@domain.com

Gmail kullanıyorsanız ve yine de bazı kimlik doğrulama hatası alıyorsanız, gmail ayarını değiştirmeniz gerekir:

Buradan daha az güvenli uygulamalar için Access'i açın



-3

Basit Posta Gönderme:

$ mail -s "test message from centos" recipient@example.com
hello from centos linux command line

Ctrl+ Dbitirmek için


2
on line komut istiyor.
Rohit Gupta
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.