SMTP-клиент командной строки с поддержкой аутентификации SASL

2137
Alexander Gromnitsky

Mutt (с поддержкой скомпилированного SMTP) при отправке сообщения может отображать ход выполнения операции, но это происходит только в интерактивном режиме. Если кто-то пытается запустить Mutt в пакетном режиме:

% mutt -s 'test # 1' -a огромный_файл.tar.gz - joe@example.com SSL-соединение с использованием TLSv1 / SSLv3 (RC4-MD5) 

он не увидит обновления прогресса, что неудобно для отправки очень больших файлов.

Мой вопрос: есть ли какой-либо клиент командной строки SMTP, который может отправлять сообщения через SMTP-сервер GMail и отображать индикатор выполнения (или что-то подобное) для пользователя?

Заранее спасибо.

1

3 ответа на вопрос

2
LiraNuna

Я верю, что суки - это именно то, что вы ищете.

Он работает с Gmail, но не может отображать приличный индикатор выполнения. (опция -stl не очень полезна.) Alexander Gromnitsky 14 лет назад 0
Пришел в эту ветку за приличным сценарием оболочки для SMTP транзакции. Свакс идеально подходит для счета. Спасибо! Rajkumar S 11 лет назад 0
1
akira

перечитав вопрос и получить на основную часть (которая должна быть выделена) я думаю, что я хотел бы сделать это (так как я не нашел такого решения в существующих SMTP-клиентов):

использовать источник msmtp, в его smtp.c есть smtp_send_mail (), где происходит фактическая отправка. я бы исправил этот файл, чтобы распечатать, сколько почты отправлено. может быть, как вариант, может быть, реагировать на сигнал (например, 'kill -USR1') ...

0
jtimberman

Я бы настроил Postfix в качестве локального MTA с включенным SASL.

В примере системы Ubuntu 9.04 установите пакеты postfix, libsasl2-2 и ca-Certificates. Создайте / измените следующие файлы конфигурации 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:$/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 = + 

Все остальные значения могут быть значениями по умолчанию, на самом деле многие из них заслуживают внимания в начале - smtp_ *. Измените имя хоста и домен для вашей среды.

/ И т.д. / постфикса / sasl_passwd:

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

Замените mail.google.com на любой SMTP-сервер Google, а на gmail_username и gmail-password укажите правильные значения.

Запустите postmap и перезапустите postfix:

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

Теперь, когда вы отправляете почту в вашей системе, она будет использовать Postfix в качестве локального MTA и автоматически аутентифицируется с помощью SASL.

Спасибо за ответ, но мой вопрос был не в том, как настроить MTA (я вполне доволен sendmail + cyrus-sasl2). Я просто хочу простой утилит командной строки, который может отправлять почту (без касания моего MTA) в пакетном режиме, как Mutt _and_ отображать своего рода индикатор выполнения, как Wget. Alexander Gromnitsky 14 лет назад 0

Похожие вопросы