E-posta göndermek için Bash betiği

Bash Script Send Email



E-posta, günümüz dünyasında artık çok yaygın bir iletişim aracıdır. Herkes e-postayı göndererek arkadaşlarıyla, aile üyeleriyle ve iş arkadaşlarıyla kolayca iletişim kurabilir veya herhangi bir belgeyi paylaşabilir. Genellikle insanlar e-posta göndermek için Gmail, Yahoo, Hotmail vb. gibi herhangi bir ücretsiz e-posta sunucusunu kullanır. Ancak Linux işletim sisteminde komut satırından kolayca e-posta gönderebilirsiniz. Linux'ta e-posta göndermenin birçok yolu vardır. Bu eğitimde Ubuntu işletim sisteminde terminalden e-posta göndermenin bazı yaygın ve kolay yolları gösterilmektedir.

Başlatma:

Birçok Linux komutu, komut satırından veya bir bash betiği kullanarak e-posta göndermek için kullanılabilir. Ancak sistemde düzgün bir SMTP sunucusu kurulmamışsa, herhangi bir e-posta gönderme komutu çalışmayacaktır. Komut satırından e-posta göndermek için kendi SMTP sunucunuzu kurabilir veya Gmail veya Yahoo gibi iyi bilinen herhangi bir e-posta servis sağlayıcısının ücretsiz SMTP sunucusunu kullanabilirsiniz. Bu eğitimde bir Gmail hesabının SMTP sunucusu kullanılır. Bu görevi yapmak için, bir Gmail hesabı seçmeniz ve bu hesabın e-postayı göndermesi için 'Daha az güvenli uygulamalara izin ver' seçeneğini etkinleştirmeniz gerekir. Bu seçeneği etkinleştirmek için aşağıdaki öğreticiyi ziyaret edebilirsiniz.







https://linuxhint.com/how-to-send-email-from-php/



Bu seçeneği etkinleştirdikten sonra ' /etc/ssmtp/ssmtp.conf' dosyasını 'root' ayrıcalığı ile açmanız ve dosyanın sonuna aşağıdaki satırları eklemeniz gerekmektedir. Kurulumu tamamlamak için e-posta adresinizi 'AuthUser' ve e-posta şifrenizi 'AuthPass' olarak ayarlamanız gerekir.



KullanSTARTTLS=EVET
FromLineOverride=EVET
kök=yönetici@örnek.com
posta merkezi=smtp.gmail.com:587
Yetki Kullanıcısı= kullanıcı adı@gmail.com
AuthPass=şifre

Örnek-1: Sendmail Komutunu Kullanma

Linux'un popüler e-posta gönderme komutlarından biri 'sendmail'dir. Kullanıcı bu komutu kullanarak komut satırından kolayca e-posta gönderebilir. Sendmail paketi sistemde kurulu değilse paketi kurmak için aşağıdaki komutu çalıştırın.





$sudouygunYüklemekssmtp

E-posta içeriğinin aşağıdaki içerikle birlikte 'email.txt' adlı bir dosyada saklandığını varsayalım. Burada, 'Konu:' dan sonraki metin e-posta konusu olarak, kalan kısım ise e-posta gövdesi olarak gönderilecektir.

e-posta.txt



Konu: sendmail kullanarak e-posta gönderme
E-posta gövdesini test etme

Aşağıdaki komut gibi alıcı e-posta adresi ile `sendmail' komutunu çalıştırın.

$posta göndermekKullanıcı adı@gmail.com<e-posta.txt

Örnek-2: 'mail' Komutunu Kullanma

Linux'ta e-posta göndermek için en yaygın komut 'mail' komutudur. Bu komut, varsayılan olarak Ubuntu'da yüklü değildir. `mail` komutunu yüklemek için aşağıdaki komutu çalıştırın.

$sudouygunYüklemekmailutils

Aşağıdaki komut, sistemde yüklüyse bu komutun sürümünü gösterecektir.

$posta-V

E-postanın konusunu tanımlamak için 'mail' komutunda '-s' seçeneği kullanılır. Aşağıdaki komut gibi e-posta konusu ve alıcı e-posta adresi ile '-s' seçeneği ile 'mail' komutunu çalıştırın. Cc: adresini soracaktır. Bilgi: alanını kullanmak istemiyorsanız, boş bırakın ve enter tuşuna basın. İleti gövdesini yazın ve e-postayı göndermek için Ctrl+D tuşlarına basın.

$posta-s 'ders'Kullanıcı adı@gmail.com

Komuta e-posta mesajı gövdesi eklemek istiyorsanız, '<<<’ operator like the following command.

$posta-s 'Mesaj Konusu'Kullanıcı adı@gmail.com<<< 'mesaj gövdesini test etme'

Ayrıca '-a' seçeneğini kullanarak 'mail' komutu ile gönderen e-posta adresini ekleyebilirsiniz. Aşağıdaki komut, 'mesaj konusu', gönderenin adı ve e-posta adresi, 'Yönetici' başlıklı e-postayı gönderir.<[e-posta korumalı]>' ve alıcı e-posta adresi,[e-posta korumalı]ve mesaj gövdesi, 'test mesajı'.

$ posta-s 'Mesaj Konusu' -ileKimden:Yönetici<yönetici@örnek.com >
Kullanıcı adı@gmail.com<<< 'test mesajı'

Ayrıca echo ve pipe( | ) komutunu kullanarak bir e-posta mesajı gövdesi gönderebilirsiniz. Aşağıdaki komut, ileti gövdesini göndermek için boru (|) komutunu kullanır.

$dışarı attı 'test mesajı' |posta-s 'Mesaj Konusu'Kullanıcı adı@örnek.com

E-posta, `mail` komutu kullanılarak ve alıcıların adresleri virgülle ayırarak eklenerek birden fazla alıcıya gönderilebilir. Aşağıdaki komut iki alıcıya bir e-posta gönderilecektir.

$posta-s 'Test e-postası'kullanıcı adı1@örnek.com , kullanıcı adı2@örnek.com<test.txt

Örnek-3: 'mutt' komutunu kullanma

'mail' komutu gibi, 'mutt' komutu da varsayılan olarak Ubuntu'da yüklü değildir. 'mutt' komutunu yüklemek için aşağıdaki komutu çalıştırın.

$sudouygunYüklemekahmak

'mutt' komutu, 'mail' komutuna benzer şekilde çalışır ancak 'mutt' komutunun e-postayı göndermek için kendi düzenleyicisi vardır. E-postayı göndermek için geçerli e-posta adresiyle aşağıdaki komutu çalıştırın.

$dışarı attıtest mesajı|ahmak-s 'Test E-postası'Kullanıcı adı@örnek.com

'mail' veya 'mutt' komutu ile '-a' seçeneğini kullanarak herhangi bir dosyayı ekleyebilirsiniz. Aşağıdaki komut, e-postayı gönderirken item.txt dosyasını ekleyecektir.

$dışarı attı 'test mesajı' |ahmak-s 'Mesaj Konusu' -ileöğeler.txt-Kullanıcı adı@gmail.com

Örnek-4: 'SSMTP' Komutunu Kullanma

Başka bir e-posta komutu `ssmtp` komutudur. ssmtp daha önce kurulmamışsa, önce paketi kurun. ssmtp için kurulum komutu örnek-1'de gösterilmiştir. ssmtp ve sendmail komutları benzer şekilde çalışır.

Geçerli e-posta adresiyle aşağıdaki komutu çalıştırın. E-posta konusunu ve gövdesini yazın. Çıkmak ve e-postayı göndermek için ctrl+D tuşlarına basın.

$ssmtp kullanıcı adı@gmail.com

Örnek-5: mailx Komutunu Kullanma

HTML içeriğini yalnızca metin mesajını göndermeden e-posta gövdesi olarak gönderebilirsiniz. İleti gövdesi olarak kullanmak için 'test.html' adlı bir HTML dosyası oluşturun.

test.html

< html >
< vücut >>
< h3 >E-posta Gönderme</ h3 >
< Yapmak boy='2' renk='ağ'>Mesaj gövdesini test etme</ Yapmak >
<</ vücut >
</ html >

`mailx` komutu, `mail` komutu gibi çalışır. HTML içeriğini `mailx` komutunda mesaj gövdesi olarak göndermek için Content-Type'ı text/html olarak belirtmelisiniz. Aşağıdaki komut, e-posta mesajı gövdesi olarak 'test.html' dosyasının içeriğini gönderecektir.

$ postax-ile 'İçerik Türü: metin/html' -s 'mailx kullanarak e-posta gönderme'
<test.html' [e-posta korumalı]'

Alıcı e-posta hesabının gelen kutusunu kontrol ettiğinizde e-posta listesi aşağıdaki resim olarak gösterilecektir.

Çözüm

Yukarıdaki komutları düzgün bir şekilde uyguladıktan sonra, okuyucunun Linux'ta komut satırından kolayca e-posta gönderebileceğini umuyoruz.