Komut satırından veya komut dosyasından bir e-posta nasıl gönderilir? Komut dosyasını programlı olarak alıcısını ve mesajı ileterek çalıştırabilmek istiyorum.
Komut satırından veya komut dosyasından bir e-posta nasıl gönderilir? Komut dosyasını programlı olarak alıcısını ve mesajı ileterek çalıştırabilmek istiyorum.
Yanıtlar:
mail -s subject someone@example.com
mesajınızı yazın, Ctrl+D
bitirmek için tuşuna basın .
echo This will be the body of the email | mail -s "This is the Subject" destination@example.com
Mac'inizi komut satırından e-posta gönderecek şekilde yapılandırmanıza izin verecek farkında olduğum iki program var.
Her ikisi için de NASIL yazdım:
İki kişiden, öneririm msmtp
.
Yapılandırma, buradaki tüm adımları yinelemem gerekip gerekmediğinden emin olmadığım kadar karmaşık, ancak Homebrew kullanıyorsanız msmtp kullanarak
brew install msmtp --with-macosx-keyring
O zaman geri kalan sadece ilgili yapılandırma dosyalarını ayarlama meselesidir
İlk olarak /usr/local/etc/msmtprc
# Begin msmtprc
# Set default values for all following accounts.
defaults
tls on
logfile ~/.msmtp.log
# A first gmail address
account example@gmail.com
host smtp.gmail.com
port 587
protocol smtp
auth on
from example@gmail.com
user example@gmail.com
tls on
tls_starttls on
# this next line is crucial: you have to point to the correct security certificate for GMail.
# If this doesn't work, check the mstmp documentation
# at http://msmtp.sourceforge.net/documentation.html for help
#
# This next line should all be on one long line:
tls_trust_file /path/to/Thawte Roots/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem
# Set a default account
# You need to set a default account for Mail
account default : example@gmail.com
# end msmtprc
Bu tls_trust_file
hattın, https://www.thawte.com/roots/index.html adresinden sertifikaları indirdiğiniz ve yüklediğiniz yeri göstermesi gerektiğini unutmayın .
Benimkini içine koydum, ~/Dropbox/Thawte Roots
böylece tüm Mac'lerimde bulabilirim.
Sonra ~/.mailrc
msmtp binary'in nerede olduğunu söyleyen bir dosyaya ihtiyacınız var . Eğer kullandığınız brew
öyle olacak /usr/local/bin/msmtp
dosya şu şekilde görünecektir böylece:
set sendmail="/usr/local/bin/msmtp"
Son fakat önemli adım, Anahtar Zincirinizin tam olarak msmtp'nin bekleyeceği biçimde bilgiye sahip olmasını sağlamaktır:
Bunun ayrıntıların çoğunu kapsadığını düşünüyorum. Daha fazla bilgi isterseniz, http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/ adresini ziyaret edin.
example@gmail.com
Gmail veya Google Apps e-posta adresine.
~/.msmtprc
Posta göndermenin en temel yolu, sağlayıcınızın / ağınızın smtp sunucusuyla yapılan telnet oturumudur. Sunucuyla iletişime geçtikten ve her komuttan sonra, sunucu komutu "250 Tamam" gibi bir şeyle kabul ederse veya bir hata mesajı vermezse yanıtlayacaktır.
Tüm detayları RFC2821 - Basit Posta Aktarım Protokolü, Google için bulabilirsiniz. Bu temel yol, neden bir şeylerin posta gönderirken neden yanlış gittiğini test etmek için harikadır, ancak bence tam olarak el yazması oldukça karmaşıktır.
Önce Terminal'i başlatarak, bilgisayarınızda bir komut satırı arayüzü edinin. Ardından, aşağıdaki komutlarla arka arkaya devam edin.
Sağlayıcınızın / ağınızın smtp sunucusunun 25 numaralı bağlantı noktasına bağlantı yapmak için bir telnet oturumu açın
telnet name_or_ip_of_smtp_server 25
merhaba deyin abc.com gibi sağlayıcınızın / ağınızın internet adını yazın
EHLO name_of_your_network
a from = return adres gereklidir, <ve> komutun bir parçasıdır
MAIL FROM:<your_email_adress>
bir veya daha fazla hedef belirtin, <ve> komutun bir parçasıdır
RCPT TO:<destination_email_address>
RCPT TO:<second_destination_email_address>
RCPT TO:<etc_destination_email_address>
Sunucuya veri göndermeye başlamak istediğini söyle
DATA
şimdi sunucu cevap vermeli, postanızı göndermeye başlayabilir ve veri moduna geçebilirsiniz
your data
more data
etc
Şimdi bir satırda sadece char olarak bir nokta ile veri bitirmek
.
Sunucu komut moduna geri döner, böylece
QUIT
Bu benim için çalıştı, akılda aslan aklıyla yazılmış ama dağ aslanı için çalışıyor. Btw bu Gmail kullanıyor, bu yüzden değilseniz ...
Hiçbir şey indirmenize gerek yok! (sadece bir gmail hesabı kurun)
http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line-mail-with-gmail-as-smtp/
Gmail SMTP için Postfix'i yapılandırma Dosyayı /etc/postfix/main.cf
sudo vim /etc/postfix/main.cf
ve yorumlanan röportajlara aşağıdakileri ekleyin: -
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_sasl_mechanism_filter = plain
Henüz mevcut değilse, sasl_password oluşturun
sudo vim /etc/postfix/sasl_passwd
ve aşağıdakileri girin: -
[smtp.gmail.com]:587 username@gmail.com:password
Aşağıdaki komutları çalıştırın
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master
Ve bitti….
Artık komut satırından e-posta gönderebilmeniz gerekir; örneğin, bir dizinin içeriğini bir ağaç olarak bir e-posta adresine göndermek için
tree /var/www/somefolder | mail -s "contents" your@yourdomain.com
mtcmail başka bir seçenektir: http://www.macupdate.com/app/mac/33505/mtcmail-cli .
[Bu ek metni yoksay. Eklendi çünkü: vücut en az 30 karakter olmalı; 27 girdiniz.]
Unix tabanlı olduğundan sendmail komutunu kullanabilirsiniz .