LINUX.ORG.RU

отправить почту башем

 ,


0

1

здравствуйте, решил тут с башем поиграться... отправка почты гуглится на раз-два, только ничего не отправляется

mail -s "Hello World" user@mail.ru
и дальнейшие действия ничего не дают... нужно у себя почтовый сервер организовать чтобы отправлять на яндекс почту, например, или маил.ру?

телнетом тоже не удается подключиться к mail.ru например:

telnet mail.ru 25

mail вызывает, в итоге, sendmail с соответствующими параметрами. Бинарник sendmail предоставляется, собственно, самим Sendmail, либо имеется одноимённый врапер у Postfix, Exim и т.п. То есть, какой-то MTA должен присутствовать в достаточно настроенном виде. В последнее время, по большей части, в дистрибутивах Postfix по-умолчанию.

AS ★★★★★
()

И не получится.
Иначе представляешь какое спамерам раздолье бы было.
Но можно отправлять как-то через сторонний сервер — через yandex или google, разумеется с авторизацией через логин/пароль от аккаунта. Гугли.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)

Подними у себя MTA, настрой его на локальную работу (не забудь закрыть порты наружу).

Во FreeBSD это работает искаропки, ничего настраивать не надо. У меня половина сервисов шлёт отчёты на локальный ящик.

r3lgar ★★★★★
()
Последнее исправление: r3lgar (всего исправлений: 1)

Если тебе и telnet подходил, то наверно тебе нужен openssl, так и гугли: «openssl smtp mail.ru».

screamager
()

Для того что ты пытаешься сделать должен быть настроен MTA и разблокированы порты у провайдера. Сейчас даже на впс мыльные режут.

entefeed ☆☆☆
()
Ответ на: комментарий от xperious

Провайдер домашний? Тогда 100% блочит. Иногда дают разблокировать в личном кабинете, иногда через саппорт, иногда будешь сосать писос. Можешь попробовать альтернативные порты, 465, 587, 2525, но там скорее всего тоже обрезали.

Если впс то схема действий такая же, но впс подороже обычно не блокируют.

entefeed ☆☆☆
()

се

telnet mail.ru 25

Ты и правда считаешь, что на веб-сервере будет для тебя открыт 25 порт?

 $ nslookup -type=mx mail.ru
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
MAIL.ru mail exchanger = 10 mxs.mail.ru.

Authoritative answers can be found from:
MAIL.ru nameserver = ns2.mail.ru.
MAIL.ru nameserver = ns1.mail.ru.
MAIL.ru nameserver = ns3.mail.ru.
mxs.MAIL.ru     internet address = 94.100.180.31
mxs.MAIL.ru     internet address = 94.100.180.104
ns1.MAIL.ru     internet address = 217.69.139.112
ns2.MAIL.ru     internet address = 94.100.180.138
ns3.MAIL.ru     internet address = 185.30.176.202
ns1.MAIL.ru     has AAAA address 2a00:1148:db00::2
ns2.MAIL.ru     has AAAA address 2a00:1148:db00::1
ns3.MAIL.ru     has AAAA address 2a00:1148:db00::2

mxs.mail.ru - сервер, принимающий почту для домена mail.ru

$ telnet mxs.MAIL.ru 25
Trying 94.100.180.31...
Connected to mxs.MAIL.ru.
Escape character is '^]'.
220 Mail.Ru ESMTP
Black_Shadow ★★★★★
()

телнетом тоже не удается подключиться к mail.ru например:

Может через ssh попробовать?

PEKABOYARIN
()
Ответ на: се от Black_Shadow

хм, ну еще telnet smtp.mail.ru 465 прокатывает

xperious ★★
() автор топика

telnet mail.ru 25

Ты подключаешься на А-запись, а тебе надо на mx.

telnet mx.yandex.net 25

anonymous
()
Ответ на: комментарий от entefeed

потому что у mail.ru mx запись на mxs.mail.ru

dig mx mail.ru

Вообще с вашими знаниями, у меня даже руки опускаются , что-то объяснять.

constin ★★★★
()
Последнее исправление: constin (всего исправлений: 1)

Чтобы работала команда mail, нужно чтобы на машине был настроен почтовый сервер. Он может быть настроен очень простенько, но должен. ЖЕлательно, чтобы он был настроен на отправку писем уже через реальный сервер с авторизацией. И он должен конвертить ваш юзернейм автоматом, в то, что на той стороне нормально воспримут. А данном случае письмо попытается уйти от user@hostname.local

constin ★★★★
()
Последнее исправление: constin (всего исправлений: 1)
Ответ на: комментарий от constin

Для postfix напимер. Этот конфиг будет отправлять письма с помощью команды mail. Он будет перенаправлять ваше письмо на внешний сервер.


smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no


readme_directory = no

# TLS parameters

smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
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:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scaches
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtp_tls_security_level = encrypt
smtp_sasl_tls_security_options = noanonymous

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = pve.domain.local
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = pve.domain.local, localhost.domain.local, , localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = 
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = ipv4

# тут адрес реального сервера
relayhost = [mail.realmailserver.net]:submission

#тут логин и пароль от учетки на реальном сервере
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_auth_enable = yes

smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_security_options = noanonymous

#тут мы конвертим локального юзера в реального
smtp_generic_maps = hash:/etc/postfix/generic

/etc/postfix/generic

root@pve.domain.local realuser@realdomain.com

/etc/postfix/sasl_passwd

[mail.realmailserver.net]:submission realuser@realdomain.com:PaSSSWWWORD

так же не забываем

postmap /etc/postfix/sasl_passwd
postmap /etc/postfix/generic

после каждого изменения этих двух файлов

constin ★★★★
()
Ответ на: комментарий от r3lgar

Какое заблуждение? Это логично, первая ступень проблемы - блочит провайдер, вторая ступень проблемы - он долбится не туда. Все так.

entefeed ☆☆☆
()
Ответ на: комментарий от entefeed

ТС не указал, куда отправляется почта (стучаться по telnet в mail.ru:25 — это не признак, да), по умолчанию она отправляется на локалхост.

первая ступень проблемы - блочит провайдер

Хостер VPS? Бывает такое.

вторая ступень проблемы - он долбится не туда

А ещё не оттуда.

Вообще, нужны конфиги и логи, ванговать можно сколько угодно.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

да я, честно говоря, даже через curl не могу:

curl --url 'smtps://smtp.mail.ru:465' --ssl-reqd --mail-from 'example1@mail.ru' --mail-rcpt 'example2@mail.ru' --upload-file /home/tree_js/test.mail --user 'example1@mail.ru:password' --insecure

curl: (56) Failure when receiving data from the peer

по вайршарку если смотреть, то доходит до hello, затем куча tls, потом Encrypted Alert и соединение закрывается

xperious ★★
() автор топика

По моему опыту, намного легче скокпировать кусок текста из описания модуля MIME::Lite для Perl, чем настраивать абсолютно геморройную связку из mail и локального MTA. Сам протокол просто как 3 копейки, а весь смысл отправки через MTA - в том, что он сам авторизуется.

При этом MIME::Lite тоже умеет авторизоваться без проблем, а текст скрипта будет в 3 раза короче этого стрёмного конфига для postfix'а.

В общем, я лично против забивания гвоздей микроскопом.

Ну и если на то пошло есть ещё mutt :)

DRVTiny ★★★★★
()
Ответ на: комментарий от DRVTiny

В общем, я лично против забивания гвоздей микроскопом.

Perl

Да, лучше забивать саморезы кувалдой! :3 (я сам перлист, так что понимаю, что говорю)

Ну и если на то пошло есть ещё mutt :)

NeoMutt получше будет, и развивается активнее.

mutt

Моя упрощённая схема работы с почтой:

┌──────────────────────────────┐
│ DESKTOP      ┌─────────────┐ │
│   ┌──────────┤ OfflineIMAP ├─ <<< ─┐
│   │          └───────┬─────┘ │     │
│   │ ┌─────────┐ ┌────┴─────┐ │     │
│   │ │ Notmuch ├─┤ ~/.mail/ │ │     │
│   │ └─────────┘ └────┬─────┘ │     │
│ ┌─┴────┐ ┌───────┐   │       │   ┌─┴──────┐
│ │ pass ├─┤ GnuPG │   │       │   │ SERVER │
│ └─┬────┘ └───────┘   │       │   └─┬──────┘
│   │   ┌────────┐ ┌───┴─────┐ │     │
│   │   │ NeoVim ├─┤ NeoMutt │ │     │
│   │   └────┬───┘ └─────────┘ │     │
│   │    ┌───┴───┐             │     │
│   └────┤ msmtp ├───────────── >>> ─┘
│        └───────┘             │
└──────────────────────────────┘
Ибо работать с IMAP напрямую — боль.

r3lgar ★★★★★
()

Вот так примерно посылают емайлы криворукие вантузоиды на б-гмерзком повершелле

$smtpServer = "smtp.yandex.ru"
$smtpAccount = "account"
$smtpPassword = "password"
$senderAdress = "${smtpAccount}@yandex.ru"
$sendToAdress = "sendto@gmail.com";
$subject = "Subject" 
$body = "Hello" 

Write-Host "Sending email to $sendToAdress" -ForegroundColor Green
$smtp = New-Object Net.Mail.SmtpClient($smtpServer, 587) 
$smtp.EnableSsl = $true 
$smtp.Credentials = New-Object System.Net.NetworkCredential($smtpAccount, $smtpPassword); 
$smtp.Send($senderAdress, $sendToAdress, $subject, $body)

anonymous
()

Cамый простои способ отослать письмо без чего-либо это наверно будет используя smtplib и python.

anonymous_sama ★★★★★
()
Ответ на: комментарий от r3lgar

И где здесь кувалда? И на каком языке это было бы короче, читабельнее и содержательнее?

    ### Create a new multipart message:
    $msg = MIME::Lite->new(
        From    => 'me@myhost.com',
        To      => 'you@yourhost.com',
        Cc      => 'some@other.com, some@more.com',
        Subject => 'A message with 2 parts...',
        Type    => 'multipart/mixed'
    );

    ### Add parts (each "attach" has same arguments as "new"):
    $msg->attach(
        Type     => 'TEXT',
        Data     => "Here's the GIF file you wanted"
    );
    $msg->attach(
        Type     => 'image/gif',
        Path     => 'aaa000123.gif',
        Filename => 'logo.gif',
        Disposition => 'attachment'
    );
    ### use Net:SMTP to do the sending
    $msg->send('smtp','some.host', Debug=>1 );

DRVTiny ★★★★★
()
Ответ на: комментарий от xperious

Это упрощённая схема, без VPN, проксей (для IMAP и SMTP по отдельной проксе со своими юзерпассами), без скриптоты для сортировки почты.

r3lgar ★★★★★
()
Ответ на: комментарий от DRVTiny

Для автоматизации — классно, но делать это руками… Нафига, если конфиг msmtp состоит из девяти строк?

r3lgar ★★★★★
()
Ответ на: комментарий от DRVTiny

И где здесь кувалда? И на каком языке это было бы короче, читабельнее и содержательнее?

Ну так в топике и началось с него — с утилиты «mail». Не хотите нормальный MTA, будете руками эмулировать спул, обрабатывать долбёжку по нефатальной ошибке, перебор MX-ов и прочее, что делает MTA.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от constin

чет никак не могу понять как связать запущенный postfix и утилиту mail... все то же самое что и с curl: Encrypted Alert и все...

xperious ★★
() автор топика
Ответ на: комментарий от xperious

и нужен ли такой файл

smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
а то у меня в этой директории вообще нет никаких файлов .key

xperious ★★
() автор топика
Ответ на: комментарий от xperious

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

constin ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.