Использование smtp-cli.

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

Использование smtp-cli.

Непрочитанное сообщение Vlad5503 » 2017-05-17 8:14:16

Давно как-то ставил эту утилиту на freebsd 8... потом переехали на 9, потом на 10. Как-то не обращал внимания, что не отправляются смс-ки по критическим ситуациям. Начал смотреть сей программу...
Понял, что из-за перехода почтовых серверов, например mail.ru, на 465, 995 порты с применением sssl/tls модуль smtp-cli перестал соеденяться с ними. Выдает такую ошибку:

Код: Выделить всё

!!! IO::Socket::SSL and/or Net::SSLeay modules are not found
!!! These modules are required for SSL and STARTTLS support
!!! IO::Socket::INET6 -- optional module not found
!!! Socket6 -- optional module not found
!!! These modules are required for IPv6 support

!!! Neither File::LibMagic nor File::Type module found.
!!! Used for guessing MIME types of attachments. Optional.

!!! Term::ReadKey -- optional module not found
!!! Used for hidden reading SMTP password from the terminal

!!! Use --missing-modules-ok if you don't need the above listed modules
!!! and don't want to see this message again.

SSL/TLS support is not available due to missing modules. Sorry.
Пробовал в smtp-cli выставлять в "1" параметры:

Код: Выделить всё

$host = undef;
$port = 'smtp(255)'; # ставил 465
$addr_family = AF_UNSPEC;
$hello_host = 'localhost';
$verbose = 0; # ставил 1
$use_login = 0; # ставил 1
$use_plain = 0; # ставил 1
$use_cram_md5 = 0; # ставил 1
Не помогло...
Может у кого получилось заставить работать - подскажите, что надо мне подправить.
Заранее - Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

Использование smtp-cli.

Непрочитанное сообщение Vlad5503 » 2017-05-17 12:33:14

На точно таком же железе стоить копия системы с которой пробовал...
Попробовал сругалась, хотя файлы которые использовались в наличии... Ладно сделаем установку пакета, возможно при копировании был пропущен.
Делаю:

Код: Выделить всё

pkg install smtp-cli-3.6
Прошла установка.
Проверяю испольнение файлов которые используют /usr/local/binsmtp-cli. Выдало на консоль что нет поддержки ipv6 и далее я получил уже на смс-ку на нужный номер.
Т.е. - работает!
Далее копирую все файлы исполнения и в том числе /usr/local/bin/smtp-cli на сервер.
Пробую - не работает...Выдает:

Код: Выделить всё

!!! IO::Socket::SSL and/or Net::SSLeay modules are not found
!!! These modules are required for SSL and STARTTLS support
!!! IO::Socket::INET6 -- optional module not found
!!! Socket6 -- optional module not found
!!! These modules are required for IPv6 support

!!! Neither File::LibMagic nor File::Type module found.
!!! Used for guessing MIME types of attachments. Optional.

!!! Term::ReadKey -- optional module not found
!!! Used for hidden reading SMTP password from the terminal

!!! Use --missing-modules-ok if you don't need the above listed modules
!!! and don't want to see this message again.

Module IO::Socket::SSL is missing - STARTTLS support disabled.
Use --disable-starttls or install the modules to avoid this warning.
RCPT TO <79********4@sms.beemail.ru> failed: '550 SMTP is available only with SSL or TLS connection enabled.'
Unknown QUIT response ''.
Прич ем тут это?

Код: Выделить всё

Module IO::Socket::SSL is missing - STARTTLS support disabled.
Use --disable-starttls or install the modules to avoid this warning.
Может подскажите чего проверить... подправить...?

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Использование smtp-cli.

Непрочитанное сообщение snorlov » 2017-05-17 13:07:19

Если я правильно понял, данная утилита - это перловый скрипт, и при установки он наверняка закачал или проверил необходимые модули перла, просто на тестовой машине они уже есть, вполне возможно вы их поставили с каким-нибудь софтом раньше, а на серваке их нет.
Кстати, вы всегда так ставите софт на сервак простым копированием? Т.е., что вам мешает поставить smtp-cli через pkg на серваке

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

Использование smtp-cli.

Непрочитанное сообщение Vlad5503 » 2017-05-18 3:56:26

Копирование сервака шло клонированием... А вот далее один находится в работе, второй - резервный. На резервном недавно ставили доп софт для обработки баз... И Вы скорее всего правы про перл... Пошел сравнивать установленные пакеты и версии...

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

Использование smtp-cli.

Непрочитанное сообщение Vlad5503 » 2017-05-18 12:26:29

Исходя из этого сравнения установленных пакетов, у меня вопрос к этому:

Код: Выделить всё

openldap-client-2.4.44         Open source LDAP client implementation
Этот пакет используется для сертификатов, которые создавались и используются при обмене с другими.
Как тогда настроить smtp-cli без использования ssl/tls ?
Вот часть кода smtp-cli, где проверяется ssl/tls:

Код: Выделить всё

#   - Added --ssl to support for SSMTP (SMTP over SSL). This is
    $ehlo_ok, $auth_ok, $starttls_ok, $ssl, $verbose,
    $ssl_ca_file, $ssl_ca_path,
$ssl = undef;
        'disable-starttls|disable-tls|disable-ssl' =>
        'ssl' => sub { $ssl = 1 },
        'disable-ssl' => sub { $ssl = 0 },
        'ssl-ca-file=s' => \$ssl_ca_file,
        'ssl-ca-path=s' => \$ssl_ca_path,
my $have_ssl = eval { require IO::Socket::SSL; require Net::SSLeay; 1; };
if (not $have_ssl and not $missing_modules_ok) {
if (not defined($ssl)) {
        $ssl = ($port == 465);
if ($ssl) {
        &socket_to_ssl($sock);
        if ((defined ($features{'STARTTLS'}) || defined ($features{'TLS'})) && $starttls_ok && !$have_ssl)
                &socket_to_ssl($sock);
sub socket_to_ssl($)
        if (!$have_ssl) {
        Net::SSLeay::SSLeay_add_ssl_algorithms();
                SSL_ca_file => $ssl_ca_file,
                SSL_ca_path => $ssl_ca_path,
                SSL_verify_mode => (defined($ssl_ca_file) or defined($ssl_ca_path)) ? 0x01 : 0x00,
        --ssl                   Start in SMTP/SSL mode (aka SSMTP).
        --disable-ssl           Don't start SSMTP even if --port=465
        --ssl-ca-file=<filename>
        --ssl-ca-path=<dirname> Similar to --ssl-ca-file but will look for
Пробовал менять параметры:

Код: Выделить всё

$ssl = undef;
на

Код: Выделить всё

$ssl = 0;
Также выдает ошибку....
И менял:

Код: Выделить всё

$starttls_ok = 1;
на

Код: Выделить всё

$starttls_ok = 0;
Также выдает ошибку....

Код: Выделить всё

!!! IO::Socket::SSL and/or Net::SSLeay modules are not found
!!! These modules are required for SSL and STARTTLS support
!!! IO::Socket::INET6 -- optional module not found
!!! Socket6 -- optional module not found
!!! These modules are required for IPv6 support

!!! Neither File::LibMagic nor File::Type module found.
!!! Used for guessing MIME types of attachments. Optional.

!!! Term::ReadKey -- optional module not found
!!! Used for hidden reading SMTP password from the terminal

!!! Use --missing-modules-ok if you don't need the above listed modules
!!! and don't want to see this message again.
'550 SMTP is available only with SSL or TLS connection enabled.'
В задумке я..где и что мешает???

Отправлено спустя 8 минут 28 секунд:
В исполнительном скрипте,ч то использует smtp-cli поставил ключ:

Код: Выделить всё

--missing-modules-ok
Запускаю скрипт и получаю:

Код: Выделить всё

'550 SMTP is available only with SSL or TLS connection enabled.'
Unknown QUIT response ''.
Куда мне "кинуть" взгляд? где искать ошибку...?

Отправлено спустя 28 минут 4 секунды:
Забыл написать, что на резервном сервер, где отправка смс-ки работает нет установленного пакета, что указан ниже.
[quote="Vlad5503"]Исходя из этого сравнения установленных пакетов, у меня вопрос к этому:

Код: Выделить всё

openldap-client-2.4.44         Open source LDAP client implementation
Этот пакет используется для сертификатов, которые создавались и используются при обмене с другими.
....
[/code]

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Использование smtp-cli.

Непрочитанное сообщение f_andrey » 2017-05-18 13:18:54

Vlad5503 писал(а): IO::Socket::SSL and/or Net::SSLeay IO::Socket::INET6
Ну так доставьте эти модули ему из пакетов или через перловые механизмы, ну и чего там ему хочется, делов то
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Использование smtp-cli.

Непрочитанное сообщение snorlov » 2017-05-18 14:41:49

Vlad5503,
Если вы никогда не програмировали на перле, то нефиг лезть в код, а так, модули инициализируются через в начале программы, а openldap-client вообще не имеет к вашей проблеме никакого отношения... Прошерстите порты начиниющиеся с p5_, найдите нужные и поставьте

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

Использование smtp-cli.

Непрочитанное сообщение Vlad5503 » 2017-06-20 8:07:18

Вернулся к своим "баранам"...))
Проверил какие пакеты стоят:

Код: Выделить всё

# pkg info | grep "p5-"
p5-Digest-HMAC-1.03_1          Perl5 interface to HMAC Message-Digest Algorithms
p5-Email-Date-Format-1.005     Produce RFC 2822 date strings
p5-File-LibMagic-1.15          Nice wrapper for libmagic
p5-IO-Socket-IP-0.39           Drop-in replacement for IO::Socket::INET supporting IPv4 and IPv6
p5-IO-Socket-SSL-2.044         Perl5 interface to SSL sockets
p5-MIME-Lite-3.030_1           Simple interface for creating (not parsing!) MIME messages
p5-MIME-Types-2.13             Perl extension for determining MIME types
p5-Mail-Tools-2.14             Perl5 modules for dealing with Internet e-mail messages
p5-Mozilla-CA-20160104         Perl extension for Mozilla CA cert bundle in PEM format
[b]p5-Net-SSLeay-1.81             Perl5 interface to SSL[/b]
p5-Socket-2.024                Networking constants and support functions
p5-Term-ReadKey-2.37           Perl5 module for simple terminal control
p5-TimeDate-2.30_2,1           Perl5 module containing a better/faster date parser for absolute dates
Этот пакет имеет зависимость с пакетами:
p5-IO-Socket-SSL-2.044
smtp-cli-3.6 - этот как раз и выдает мне ошибку.
Эти же пакеты и такая же зависимость есть и на другом серваке. Но там работает...!
Перерыл конфиги, файлы, которые ну хоть как-то могут иметь отношение к ssl/tls и ничего не увидел. Разница между серваками это дата создания файла и у одного sert.pem размер чуть больше. Далее многоточие..... решения у меня пока нет(((

Отправлено спустя 1 час 38 минут 11 секунд:
Удалил smtp-cli
Далее дал команду - "Удалить неиспользуемые зависимости"

Код: Выделить всё

# pkg autoremove
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 92 packages:

Installed packages to be REMOVED:
        sdl-1.2.15_7,2
        aalib-1.4.r5_11
        gtk-update-icon-cache-2.24.29
        atk-2.18.0
        cups-2.2.2_1
        qt5-printsupport-5.7.1
        avahi-app-0.6.31_5
        qt5-gui-5.7.1
        qt5-widgets-5.7.1
        qt5-opengl-5.7.1
        qt5-x11extras-5.7.1
        cdrtools-3.01
        cmake-3.7.2
        cmake-modules-3.7.2
        libXcomposite-0.4.4_3,1
        compositeproto-0.4.2
        curl-7.54.0
        dbus-glib-0.104
        qt5-dbus-5.7.1
        dbus-1.10.14_2
        libXcursor-1.1.14_3
        libXfontcache-1.0.5_3
        xset-1.2.3_1
        xdg-utils-1.1.1
        fontcacheproto-0.1.3
        gdk-pixbuf2-2.32.3_1
        gobject-introspection-1.46.0
        shared-mime-info-1.5
        gnome_subr-1.0
        hicolor-icon-theme-0.15
        qt5-core-5.7.1
        qt5-network-5.7.1_1
        libXi-1.7.9,1
        inputproto-2.3.2
        jasper-1.900.1_16
        tiff-4.0.7_1
        jbigkit-2.1_1
        jsoncpp-1.8.0_2
        libGLU-9.0.0_2
        xprop-1.2.2
        libIDL-0.8.14_3
        libXinerama-1.1.3_3,1
        libXrandr-1.5.1
        libdaemon-0.14_1
        libdnet-1.12_1
        libxslt-1.1.29_1
        libgcrypt-1.7.6
        libgpg-error-1.27
        libnghttp2-1.21.0
        libpaper-1.1.24.4
        libproxy-0.4.12
        libuv-1.11.0
        libvncserver-0.9.11
        libxkbcommon-0.7.1
        llvm37-3.7.1_5
        scons-2.5.1
        m4-1.4.18,1
        p5-Digest-HMAC-1.03_1
        p5-MIME-Lite-3.030_1
        p5-Email-Date-Format-1.005
        p5-File-LibMagic-1.15
        p5-IO-Socket-SSL-2.044
        p5-IO-Socket-IP-0.39
        p5-MIME-Types-2.13
        p5-Mail-Tools-2.14
        p5-Mozilla-CA-20160104
        p5-Net-SSLeay-1.81
        p5-Socket-2.024
        p5-Term-ReadKey-2.37
        p5-TimeDate-2.30_2,1
        perl5.20-5.20.3_15
        php56-soap-5.6.30
        pkgconf-1.3.0,1
        py27-Jinja2-2.8
        py27-sphinx-1.4.8,1
        py27-Babel-2.3.4
        py27-MarkupSafe-1.0
        py27-alabaster-0.7.6
        py27-docutils-0.13.1
        py27-imagesize-0.7.1
        py27-pygments-2.1.3_1
        py27-snowballstemmer-1.2.0_1
        py27-pystemmer-1.3.0_1
        py27-pytz-2016.10,1
        py27-sphinx_rtd_theme-0.2.2
        py27-six-1.10.0
        qtchooser-39
        randrproto-1.5.0
        xcb-util-image-0.4.0_1
        xcb-util-keysyms-0.4.0_1
        xcb-util-wm-0.4.1_3
        xineramaproto-1.2.1

Number of packages to be removed: 92

The operation will free 389 MiB.

Proceed with deinstalling packages? [y/N]:
Но тут есть пакеты которые используются другими приложениями... Как так ?

Отправлено спустя 34 минуты 34 секунды:
В общем... пришла ко мне мысля(думаю так правильные люди и делали)))
удалил пакет smtp-cli.
Дал команду поиска пакета -

Код: Выделить всё

# pkg search smtp-cli
smtp-cli-3.6                   Powerful SMTP command line client
Далее:

Код: Выделить всё

# pkg install -R smtp-cli-3.6
Потом: И "О чудо!!!" по команде:

Код: Выделить всё

 # sms kto20
!!! IO::Socket::INET6 -- optional module not found
!!! Socket6 -- optional module not found
!!! These modules are required for IPv6 support

!!! Use --missing-modules-ok if you don't need the above listed modules
!!! and don't want to see this message again.
Пришла на телефон смс-ка!
Спасибо всем кто хотел помочь и помог!

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Использование smtp-cli.

Непрочитанное сообщение xM » 2017-06-20 12:47:42

Vlad5503 писал(а): Но тут есть пакеты которые используются другими приложениями... Как так ?
autoremove удаляет автоматически установленные пакеты, который необходимы либо только на период установки, либо были нужны для работы ранее установленного, но уже удалённого, софта.
IT voodoo blog https://kostikov.co