Дурак, не посылающий электронное письмо при определении smtp сервера

Кажется, что Вы пытаетесь повторно реализовать grep, там. Вместо sed просто использование:

grep -n -- "$var" file

Если var содержит regex метасимволы, которым Вы хотите соответствовать буквально, предоставить -F опция к grep:

grep -nF -- "$var" file

где var содержит Ваш желаемый шаблон.

От grep(1) страница справочника:

- n, - номер строки
Префикс каждая строка вывода с номером строки на основе 1 в его входном файле. (-n указан POSIX.)

Если Вы настаиваете на том, чтобы использовать sed, можно сделать функцию с этой целью:

notgrep (){
    if [ $# -ne 2 ];then
        echo "Usage: notgrep <pattern> <file>"
        exit 1
    end
    sed -n "/$1/{
        =
        p
    }" "$2"
}
2
05.05.2014, 21:51
5 ответов
[118196] Сможете ли вы успешно отправлять почту по SMTP с другим почтовым клиентом на этой машине? Способны ли вы связаться через telnet с вашим SMTP сервером и установить соединение? Вы используете STARTTLS?

В mutt вы используете протокол [118568]smtps[118569] для обозначения соединения, которое с самого начала защищено с помощью TLS/SSL. Если ваш почтовый сервер ожидает этого (а многие ожидают этого в наши дни), это может быть вашей проблемой.
  • Однако, если ваш почтовый сервер ожидает использования [118570]STARTTLS[118571], то вы используете обычный протокол [118572]smtp://[118573] в [118574]smtp_url[118575] и убедитесь, что [118576]установлено ssl_starttls=yes[118577].
  • Вот пример сессии [118578]telnet[118579], который показывает почтовый сервер, который использует STARTTLS:
  • 3
    27.01.2020, 21:54

    Нижеприведенный конфиг в ~/.muttrc работает для меня, для отправки почты на gmail:

    set from = "user@gmail.com"
    set realname = "user"
    set imap_user = "user@gmail.com"
    set imap_pass = "pwd"
    set folder = "imaps://imap.gmail.com:993"
    set spoolfile = "imaps://imap.gmail.com/INBOX"
    set postponed ="+[Gmail]/Drafts"
    set header_cache =~/.mutt/cache/headers
    set message_cachedir =~/.mutt/cache/bodies
    set certificate_file =~/.mutt/certificates
    set smtp_url = "smtps://user@gmail.com@smtp.gmail.com:465/"
    set smtp_pass = "pwd"
    set move = no 
    set imap_keepalive = 900
    
    0
    27.01.2020, 21:54

    У меня было то же самое, и это то, что работало для меня.

    set ssl_starttls=yes
    set ssl_force_tls=yes
    
    set imap_user = "user@example.com"
    set imap_pass = "!HASHEDPASSWORD!"
    set folder = imap://mail.example.com/
    set spoolfile = imap://mail.example.com/INBOX
    
    # SMTP user auth
    # # fill in the right user and pass based on your setup
    # # protocols: smtp for TLS (25/587), smtps for SSL (465)
    set smtp_url = "smtp://$imap_user@mail.example.com:587"
    set smtp_pass = "$imap_pass"
    
    # Where to save copies of outgoing mail
    set record = '+Sent'
    

    Что сделало его не работать для меня, был порядок, в котором все было в файле конфигурации и определение для «установить запись» в папку, которая была ссылкой на несуществующую папку.

    При ответе на «Нет» к вопросу о создании папки, который он повесил, и ни один трафик не видел на SMTP-сервер.

    PS: Проверить файлы Config Config, они могут указывать конфликтующие настройки и / или в неправильном порядке.

    HTH

    3
    27.01.2020, 21:54

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

    Проблема заключалась в том, что мне нужно было хотя бы один раз принять сертификат от SMTP-сервера Google, а для этого нужно запустить mutt без перенаправления ввода, иначе mutt не сможет предложить вам принять сертификат.

    Кстати, вы должны выбрать (a) для всегда, чтобы сертификат сохранялся в .mutt/certificates. Если вы выберете (o) один раз, он будет использовать предоставленный сертификат, но не сохранит его в .mutt/certificates.

    Так что запускайте mutt без перенаправления ввода (включая перенаправление на стандартный ввод), а затем всегда принимайте предложенный сертификат a. После этого, когда вы в следующий раз запустите mutt, он должен просто работать, потому что использует сохраненный сертификат.

    0
    27.01.2020, 21:54

    Я потратил целый день на то, чтобы понять это и настроить МНОЖЕСТВО комбинаций между различными SSL/TLS и конфигурациями портов, но безуспешно, пока сегодня я, наконец, не попробовал это специально:

    set ssl_starttls = no

    Похоже, что по умолчанию mutt пытается запустить STARTTLS, так что вам нужно специально указать НЕ НАДО

    Никакой другой конфигурации, кроме очевидных smtp_urlи smtp_pass, не требовалось. Теперь я могу отлично отправлять почту с этим.muttrc

    set ssl_starttls = no
    set smtp_url = "smtp://user@example.com@mail.example.com:587/"
    set smtp_pass = "password"
    

    Это работало с Нерекомендуемыми конфигурациями SSL от моего провайдера электронной почты. Я все еще не могу использовать рекомендуемую конфигурацию, используя порт 465.

    Это все настройки, которые я настроил, которые влияют на отправку почты, если кто-то еще хочет попробовать:

    set ssl_starttls = no    # apparently yes is default.
    set ssl_force_tls = yes
    set smtp_authenticators = "login"
    
    set smtp_url = "smtp[s]://..."
    set certificate_file = "~/.mutt/certificates"    # some recommend creating the file first: mkdir ~/.mutt && touch ~/.mutt/certificates
    
    set ssl_verify_host = no
    set ssl_verify_dates = no
    
    1
    27.01.2020, 21:54

    Теги

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