Bana bir şeyler göndermek için sendmail kullanmak istiyorum ve bunu bir onelinerda yapmak istiyorum.
echo "mail content" | sendmail emailataddres.com
Konu olmadan gönderir.
Konu satırı Posta içeriğinden önce gelmelidir, bu yüzden satırlarında bir şey arıyorum:
echo "mail content" | prepend "Subject: All that matters" | sendmail emailataddres.com
sed ve awk kullanmak ve hatırlamak gerçekten garip olma eğilimindedir.
EDIT : Sadece açıklığa kavuşturmak için: echo "Posta içeriği" sadece açıklayıcı bir örnektir. Herhangi bir kaynaktan akış stdout şeyler başa edebilmek gerekir. örneğin: ifconfig, zcat vb.
prepend
yapmalı? Bir şeyi nasıl başlatacağınızı bilmek için, yukarı akış komutunun (örn. echo
) EOF'u göndermesini beklemeniz gerekir ; böylece, postayı göndermek için stdout'a geçmeden önce verilerinizi akışa yerleştirebilirsiniz. Kısa bir Ruby veya Python betiği görevi gibi geliyor.
mail
, sendmail
doğrudan yerine komutu (bazen bsdmail olarak adlandırılır) kullanmak olacaktır . mail
isteğe bağlı bir -s subject
seçenek alır , örneğin: ifconfig -a | mail -s 'Current ifconfig output' me@someaddr.com
echo -e "Subject: All that matters\nmail content"
? Ya da daha platformu agnostik:printf 'Subject: %s\n%s\n' "All that matters" "mail content"
. Ayrıca, daha basit bir astar oluşturmak için iki dize bağımsız değişkenini alan küçük bir komut dosyası da yazabilirsiniz.