* Nix'teki komut satırı ile e-posta göndermenin en kolay yolu?


10

Tek bir dosyayı bir * nix kabuğu eki olarak e-postayla göndermek için kullanabileceğim en kolay - ve tercihen en taşınabilir - komut nedir?

Yanıtlar:


11

İkili bir ek olduğunu varsayarsak:

uuencode [dosyaadı] [dosyaadı] | postalar [konu] [alıcı adresi]

Yalnızca bir metin dosyasıysa UUencoding ile uğraşmanıza gerek yoktur, örn:

mail -s [konu] [alıcı adresi] <[dosyaadı]

* NIX'lerin çoğunda posta ve uuen kodu bulunur, bu nedenle bu hemen hemen her yerde çalışmalıdır.


Metin dosyasını ileti gövdesinde değil, ek olarak isteyip istemediğime ne dersiniz?
Yuval A

Değişir - Ben düz GNU posta bunu yapabilir sanmıyorum, bu yüzden gerçek bir posta istemcisi kullanmanız gerekir; çam, ahmak veya benzeri bir şey. Bunlardan hangilerini kullanabileceğiniz, sistemlerinizin hangilerinin kurulu olduğuna bağlıdır. Mutt'u kullanarak Gavin'in cevabı (aşağıda) gayet iyi çalışacaktır.
RainyRat

Çam iyidir! Metinsel GUI kullanarak komut satırı üzerinden kullanabilir miyim?
Yuval A

Bence bu mümkün. Göz at staff.washington.edu/chappa/pine/info/outgoing.html daha fazlası.
RainyRat

11

Mutt kullanarak şunları yapabilirsiniz:

mutt -z -a <file> -s <subject> -- user@example.com

Veya, bir gövde yazmak istemiyorsanız:

mutt -z -a <file> -s <subject> -- user@example.com < /dev/null


mutt benim sistemlerde mevcut değil, yine de teşekkürler
Yuval A

Bunun kolay ve taşınabilir olan arasında bir atış olacağını göreceğinizi düşünüyorum. mailx taşınabilirdir ancak kolay olması gerekmez. RainyRat'ın belirttiği gibi, tam bir MUA ile gidip komut satırından çalıştırmanız gerekeceğini düşünüyorum.
Gavin McTaggart

2
--Bu komutların çalışması için e-posta adresinden önce bir tane eklemem gerekiyordu.
Autumnsault

Aslında e-posta adresini "- kullanici@example.com" dosya adlarından ayırmak için tire işaretleri gereklidir, @DoctorMohawk doğrudur. Bunları yukarıda cevabın gövdesine eklemeye çalışıyorum.
Jeff Clayton

2

" sendEmail hafif, komut satırı SMTP e-posta istemcisidir. Bir komut satırından e-posta göndermeniz gerekiyorsa, bu ücretsiz program mükemmeldir: kullanımı basit ve zengin özelliklere sahiptir. Betik komut dosyalarında, toplu iş dosyalarında kullanılmak üzere tasarlanmıştır , Perl programları ve web siteleri, ancak oldukça uyarlanabilir ve muhtemelen gereksinimlerinizi karşılayacaktır. SendEmail Perl ile yazılmış ve NO MODULES gerektirdiği için benzersizdir.Sezgisel ve esnek bir komut satırı seçenekleri kümesi vardır, çok kolay hale getirir [Desteklenen Platformlar: Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000 ve Windows XP] "

Daha önce kullandım ve gerçekten beğendim. -A seçeneğiyle dosya ekleyebilirsiniz.


+1 - Kolay ve hala aktif olarak bakımı yapılan için ihtiyacım olan şey için mükemmeldi! Eğer bir Debian sistemindeyseniz, bunu yapabilirsiniz aptitude install sendemail. Komutun sendEmailbüyük 'E' harfiyle yüklendiğini unutmayın .
Topher Fangio

Aslında, tarball bir perl betiği ve birkaç belge içerir. Sadece indirebilir, ayıklayabilir ve çalıştırabilirsiniz (sisteminizde perl varsa). Yine de sevmene sevindim.
Clinton Blackmore

1

Yorum ekleyemiyorum, ama ..

  • Bunun cevapları, eğer varsa, hangi türevinizin mailxmevcut olduğuna bağlı olacaktır .
  • Dosya, alıcı MUA tarafından sorunsuz bir şekilde görüntülenmekle birlikte, gelen borular uuencodeteknik olarak ekli bir e-posta oluşturmaz. Nedenini görmek için aldığınız e-postanın kaynağına bir göz atın.

+1 doğruluk için. Ekleri gönderebilecek bir mailx sürümü olduğunu bile fark etmedim (benimki kesinlikle yok). Ayrıca uuencode -> mail pipeline ile gerekli olan manuel uudecoding hakkında da haklısınız.
Gavin McTaggart

1

Mutlak taşınabilirlik istiyorsanız, 25 numaralı bağlantı noktasındaki posta sunucunuza telnet yapabilir ve doğrudan SMTP komutları verebilirsiniz. Çok zor değiller ve çok yazılabilir olmalılar .


3
Kendi SMTP sunucunuzu da yazabilirsiniz.
hark

1

Hızlı bir Google , çeşitli uygulamalar kullanarak dosya eklemenin çeşitli yollarını açıklayan bu sayfayı açtı . Daha yaygın olanlardan birkaçı -

  • uuenc8de satır içi "ek" yapmak için.

  • metamail -f file-to-attach -m mime-type

  • mpack -c mime-type file-to-attach

  • ahmak -a file-to-attach

  • Karaağaç -A file-to-attach

Buna ek olarak, mesajı oluşturmak ve göndermek için birkaç kabuk komut dosyasına ve bir Perl komut dosyasına bağlantıları vardır , bu da muhtemelen beğeninize daha fazla olacaktır.


1
echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt my@email.com

posta: yasadışı seçenek - a
Yuval A

1
bunun bir mailx özelliği olduğuna dikkat edin, belirli bir paketin kurulu olduğundan emin olun
niXar

0

Birkaç yıl önce, bunu yapan bir kabuk senaryosu yazdım. Buna binmail.sh deniyordu. Bir base64 kodlayıcı ( google ile birçok kaynak kodu bulunabilir ) ve RFC1521'e göre ekler kullandı .


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.