PDA

Показать полную графическую версию : Отправка email


interminable
13-01-2017, 12:33
Здраве будьте бояре, нужна ваша великая помощ...
Нужен батник, в который заранее пропишешь отправителя и получателя письма, батник этот при запуске должен узнать локальный IP ПК и отправить его письмецом.

greg zakharov
13-01-2017, 13:04
Отправка сообщения в примере ниже осуществляется самосборным curl'ом.
@echo off
setlocal
set "key=HKLM\SYSTEM\CurrentControlSet\Services"
set "key=%key%\Tcpip\Parameters\Interfaces"
for /f "tokens=3" %%i in (
'reg query %key% /s ^| findstr /irc:"DhcpIPAddress"'
) do if /i "%%i" neq "0.0.0.0" set "ip=%%i"&goto:send
:send
set msg="%tmp%\msg.txt"
for %%i in (
"From:from@mail.ru"
"To:target@mail.ru"
"Subject:IP-Address"
""
"%computername%:%ip%"
) do echo:%%~i>>%msg%
curl -# smtps://smtp.mail.ru:465 --ssl-reqd^
--mail-from "from@mail.ru" --mail-rcpt "target@mail.ru"^
--upload-file %msg% -u from@mail.ru
del /f /q %msg%
endlocal
exit /b

interminable
13-01-2017, 14:19
Ну я не такой прогер, ваще не прогер...
А где пароль от почты вписывать? И какие поля менять с почтовым адресом?

greg zakharov
13-01-2017, 14:26
Парамерт -u в curl указывает на имя пользователя (имя почтового ящика), но последний может быть представлен парой username:password. В примере выше после запуска бата curl попросит ввести пароль от ящика (не светить же им, верно?!), но если хочется выставить пароль на всеобщее обозрение, то:
curl -# ... -u "from@mail.ru:password"
Помимо прочего есть возможность хранить имя пользователя и пароль для curl в файле _netrc, но этот способ потребует дополнительных телодвижений и также не особо безопасен, так как _netrc предствляет собой обычный текстовый файл без какого-либо шифрования.

interminable
13-01-2017, 15:26
curl не является внутренней или внешней программой...а мне надо так, чтоб запускалось везде и всегда и легко.

greg zakharov
13-01-2017, 16:00
Вам ведь русским языком было написано "самосборный curl", это значит "собран из исходников самостоятельно", - неудивительно, что curl "не является внутренней или внешней программой". Командная строка Windows не предусматривает средств взаимодействия по SMTP, POP3 и дыр и пыр; есть лишь убогий ftp.exe, который ftp сессии держит с полпинка, а может и того хуже, собственно, на этом вся роскошь и заканчивается. Если желаете, чтобы "везде и всегда", используйте WSH, только головной боли куда больше, нежели с PowerShell, который начиная с Win7 стал штатным средством Windows.
Кто бы что ни говорил, а круче curl для работы с сетью в консоли пока ничего не выдумано: здесь и возможность управлять облачными хранилищами через WebDAV, манипуляция почтой (SMTP\POP3\IMAP) и еще невесть сколько всего. Так что Вам выбирать: развернуть везде curl (чай ведь один бинарник, если статически слинкован) или освоить, например, WSH.




© OSzone.net 2001-2012