Befehlszeilen-SMTP-Client mit Unterstützung der SASL-Authentifizierung

2633
Alexander Gromnitsky

Mutt (mit kompilierter SMTP-Unterstützung) kann beim Senden einer Nachricht den Fortschritt des Vorgangs anzeigen, dies geschieht jedoch nur im interaktiven Modus. Wenn Sie versuchen, Mutt im Batch-Modus auszuführen:

% mutt -s test # 1 '-a riesige_datei.tar.gz - joe@example.com SSL-Verbindung mit TLSv1 / SSLv3 (RC4-MD5) 

Fortschrittsaktualisierungen werden nicht angezeigt, was für das Senden sehr großer Dateien unbequem ist.

Meine Frage ist: Gibt es einen SMTP-Befehlszeilen-Client, der die Möglichkeit hat, eine Nachricht über den GMail-SMTP-Server zu senden und dem Benutzer eine Fortschrittsleiste (oder ähnliches) anzuzeigen?

Danke im Voraus.

1

3 Antworten auf die Frage

2
LiraNuna

Ich glaube, Swaks ist genau das, wonach Sie suchen.

Es funktioniert mit Google Mail, kann jedoch keine anständige Fortschrittsleiste anzeigen. (Die Option -stl ist nicht sehr hilfreich.) Alexander Gromnitsky vor 15 Jahren 0
Kam zu diesem Thread für ein anständiges Shell-Skript für die SMTP-Transaktion. Swaks passt perfekt auf die Rechnung. Vielen Dank! Rajkumar S vor 12 Jahren 0
1
akira

Nachdem ich die Frage noch einmal gelesen hatte und den wesentlichen Teil (der hervorgehoben werden sollte) habe, denke ich, würde ich das tun (da ich in bestehenden SMTP-Clients keine solche Lösung gefunden habe):

Verwenden Sie die Quelle von msmtp, in ihrer 'smtp.c' gibt es 'smtp_send_mail ()', wo der eigentliche Versand stattfindet. Ich würde diese Datei patchen, um auszudrucken, wie viel von der Mail gesendet wird. Vielleicht als Option, um auf ein Signal zu reagieren (wie 'kill -USR1') ...

0
jtimberman

Ich würde Postfix als meinen lokalen MTA mit aktivierter SASL einrichten.

Installieren Sie auf einem Ubuntu 9.04-Beispielsystem die Pakete postfix, libsasl2-2 und ca-certificate. Erstellen / ändern Sie die folgenden Postfix-Konfigurationsdateien.

/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:$/smtpd_scache smtp_tls_session_cache_database = btree:$/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 = + 

Alle anderen Werte können Standardwerte sein, in der Tat sind viele davon der smtp_ * am Anfang. Ändern Sie den Hostnamen und die Domäne für Ihre Umgebung.

/ etc / postfix / sasl_passwd:

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

Ersetzen Sie mail.google.com durch den SMTP-Server von Google und den gmail_username und das gmail-password durch die entsprechenden Werte.

Postmap ausführen und Postfix neu starten:

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

Wenn Sie nun E-Mails auf Ihrem System senden, wird Postfix als lokaler MTA verwendet und automatisch mit SASL authentifiziert.

Danke für die Antwort, aber meine Frage war nicht, wie man MTA einrichtet (ich bin mit sendmail + cyrus-sasl2 ziemlich zufrieden). Ich möchte nur ein einfaches Befehlszeilenprogramm, das E-Mails senden kann (_ ohne dass ich meinen MTA berührt) im Batch-Modus, z. B. mutt _und_ eine Art Fortschrittsanzeige wie wget anzeigen. Alexander Gromnitsky vor 15 Jahren 0