Klient SMTP wiersza polecenia z obsługą uwierzytelniania SASL

1

Mutt (ze skompilowaną obsługą SMTP) podczas wysyłania wiadomości może wyświetlać postęp operacji, ale robi to tylko w trybie interaktywnym. Jeśli ktoś spróbuje uruchomić Mutt'a w trybie wsadowym:

% mutt -s 'test # 1' -a ogromny_plik.tar.gz - [email protected]
Połączenie SSL za pomocą TLSv1 / SSLv3 (RC4-MD5)

nie zobaczy aktualizacji postępu, co jest niewygodne przy wysyłaniu bardzo dużych plików.

Moje pytanie brzmi: czy istnieje klient linii poleceń SMTP, który ma możliwość wysyłania wiadomości za pośrednictwem serwera smtp GMail i wyświetlania użytkownikowi paska postępu (lub czegoś podobnego)?

Z góry dziękuję.

Alexander Gromnitsky
źródło

Odpowiedzi:

2

Wierzę, że swaks jest dokładnie tym, czego szukasz.

LiraNuna
źródło
Działa z Gmailem, ale nie może wyświetlić żadnego przyzwoitego paska postępu. (Opcja -stl nie jest zbyt pomocna.)
Alexander Gromnitsky,
Przyszedł do tego wątku, aby uzyskać porządny skrypt powłoki dla transakcji SMTP. swaks idealnie pasuje do rachunku. Dzięki!
Rajkumar S
1

po rereading pytanie i zaczyna się zasadniczą część (która powinna być zaznaczona) Myślę, że byłoby to zrobić (ponieważ nie znalazłem takiego rozwiązania w istniejących klientów SMTP):

użyj źródła msmtp , w jego „smtp.c” znajduje się „smtp_send_mail ()”, w którym odbywa się faktyczne wysyłanie. załatałbym ten plik, aby wydrukować, ile wiadomości jest wysyłanych. może jako opcja, może zareagować na sygnał (np. „zabij -USR1”) ...

akira
źródło
0

Postfix zostałbym skonfigurowany jako mój lokalny MTA z włączoną obsługą SASL.

W przykładowym systemie Ubuntu 9.04 zainstaluj pakiety postfix, libsasl2-2 i ca-certyfikaty. Utwórz / zmodyfikuj następujące pliki konfiguracyjne Postfix.

/etc/postfix/main.cf:

biff = no
append_dot_mydomain = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
myhostname = linuxbox.int.example.com
mydomain = example.com
myorigin = $mydomain
smtpd_banner = $myhostname ESMTP $mail_name 
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = linuxbox.int.example.com, linuxbox, localhost.localdomain, localhost
relayhost = [mail.google.com]:587
mynetworks = 127.0.0.0/8
inet_interfaces = loopback-only
mailbox_size_limit = 0
recipient_delimiter = +

Wszystkie inne wartości mogą być wartościami domyślnymi, w rzeczywistości wiele z nich jest warte uwagi na początku smtp_ *. Zmień nazwę hosta i domenę dla swojego środowiska.

/ etc / postfix / sasl_passwd:

[mail.google.com]:587 gmail_username:gmail-password

Zastąp mail.google.com dowolnym serwerem SMTP Google, a nazwa_użytkownika_gmaila i hasło-gmail z odpowiednimi wartościami.

Uruchom postmap i uruchom ponownie postfix:

sudo postmap /etc/postfix/sasl_passwd
sudo /etc/init.d/postfix restart

Teraz, gdy wysyłasz pocztę w systemie, użyje Postfix jako lokalnego MTA i automatycznie uwierzytelni się w SASL.

jtimberman
źródło
Dzięki za odpowiedź, ale moje pytanie nie dotyczyło konfiguracji MTA (jestem całkiem zadowolony z sendmaila + cyrus-sasl2). Chcę tylko prostej linii poleceń, która może wysyłać pocztę ( bez dotykania mojego MTA) w trybie wsadowym jak mutt i wyświetlać rodzaj paska postępu jak wget.
Alexander Gromnitsky