Author Topic: Письмо на почту  (Read 8141 times)

0 Members and 1 Guest are viewing this topic.

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Письмо на почту
« on: January 22, 2018, 03:20:14 AM »
Можно ли с помощью кода зделать так чтоб при обнаружении какойто картинки на екране бот надсилал вам письмо на елекронную почту?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Письмо на почту
« Reply #1 on: January 22, 2018, 09:49:33 AM »
Вот что удалось нарыть.

Консольная программка mailsend позволяет отправлять почту из командной строки
http://forum.ru-board.com/topic.cgi?forum=5&topic=46975#19

К сожалению как не пытался, текст на русском отправляется в неправильной кодировке. Так что нужно писать на английском.

В архиве пример использования.

Но прежде нужно настроить батник на имеющуюся у тебя почту.

set - это создание переменной в языке BAT
mailsender - это имя переменной
=mailsend.exe - присваивание значения переменной

set mailsender=mailsend.exe - это имя запускаемой программы
set smtpsender=username@mail.ru - это адрес твоего почтового ящика отправителя
set smtpsenderfullname=User Name - это имя будет присутствовать в поле "от кого" пришло письмо
set smtpserver=smtp.mail.ru - это адрес smtp сервера
set smtpport=465 - порт smtp сервера действителен для mail.ru
set smtpuser=username@mail.ru - адрес твоего почтового ящика (видимо для "от кого" письмо)
set smtppwd="password" - Пароль от твоего почтового ящика
set mailto=usernanme@yandex.ru - адрес куда будет отправлено письмо.
set subject="Тестовая тема" - Тема письма
set attach=report.txt - файл вложения

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

На счет поиска картинки, пример использования.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
   TFCLEAR("report.txt", 0)
   TFWRITE("report.txt", "Kartinka naidena")
   WAITMS(100)   
   EXECUTE("Run.bat")
   HALT
END_IF
WAITMS(100)

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Письмо на почту
« Reply #2 on: January 22, 2018, 07:04:56 PM »
Вот что удалось нарыть.

Консольная программка mailsend позволяет отправлять почту из командной строки
http://forum.ru-board.com/topic.cgi?forum=5&topic=46975#19

К сожалению как не пытался, текст на русском отправляется в неправильной кодировке. Так что нужно писать на английском.

В архиве пример использования.

Но прежде нужно настроить батник на имеющуюся у тебя почту.

set - это создание переменной в языке BAT
mailsender - это имя переменной
=mailsend.exe - присваивание значения переменной

set mailsender=mailsend.exe - это имя запускаемой программы
set smtpsender=username@mail.ru - это адрес твоего почтового ящика отправителя
set smtpsenderfullname=User Name - это имя будет присутствовать в поле "от кого" пришло письмо
set smtpserver=smtp.mail.ru - это адрес smtp сервера
set smtpport=465 - порт smtp сервера действителен для mail.ru
set smtpuser=username@mail.ru - адрес твоего почтового ящика (видимо для "от кого" письмо)
set smtppwd="password" - Пароль от твоего почтового ящика
set mailto=usernanme@yandex.ru - адрес куда будет отправлено письмо.
set subject="Тестовая тема" - Тема письма
set attach=report.txt - файл вложения

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

На счет поиска картинки, пример использования.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
   TFCLEAR("report.txt", 0)
   TFWRITE("report.txt", "Kartinka naidena")
   WAITMS(100)   
   EXECUTE("Run.bat")
   HALT
END_IF
WAITMS(100)
а как настроить батеик ато я в етом не очень понимаю

i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
Re: Письмо на почту
« Reply #3 on: January 22, 2018, 10:27:05 PM »
на неделе видел в упоминаниях аналогичную http://www.blat.net/ не пробовал, сами
а как настроить батеик я в етом не понимаю
« Last Edit: January 22, 2018, 10:32:49 PM by i0 »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Письмо на почту
« Reply #4 on: January 23, 2018, 07:18:00 AM »
на неделе видел в упоминаниях аналогичную http://www.blat.net/ не пробовал, сами
а как настроить батеик я в етом не понимаю

В первую очередь наткнулся на эту blat. Но оказалось не рабочий вариант. Так как все имеющиеся почты используют SSL а blat его не поддерживает. Mailsend сразу же заработал, но вот проблемы с кодировками.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Письмо на почту
« Reply #5 on: January 30, 2018, 02:06:07 AM »

К сожалению как не пытался, текст на русском отправляется в неправильной кодировке. Так что нужно писать на английском.


причем при веб просмотре почты в браузере, проблем не возникает. но в почтовых клиентах - с русским проблемы.


как оказалось, кодировку нужно было писать полностью, в место "-сs 1251" -  "-cs Windows-1251". перебирал всевозможные кодировки и совершенно случайно вписал Windows-1251 и все заработало как нужно  :D . странно, что в той теме http://forum.ru-board.com/topic.cgi?forum=5&topic=46975#19 никто этого не заметил.

тестировал на mailsend v1.19

Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Re: Письмо на почту
« Reply #6 on: February 02, 2018, 08:05:56 PM »
А есть ли у этой blat возможность аттачить вложения? Можно было б тогда сохранять в файлик, а уже его прикладывать к письму (тестом или в архиве). Хорошая находка, Raven-foraven)

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Письмо на почту
« Reply #7 on: February 02, 2018, 09:20:38 PM »
пример с вложением. в моем примере это "file.txt", через "mail.ru".

Code: (.bat) [Select]
chcp 1251

set mailsender=mailsend.exe
set smtpsender=mail@mail.ru
set smtpsenderfullname=mail@mail.ru
set smtpserver=smtp.mail.ru
set smtpport=465
set smtpuser=mail@mail.ru
set smtppwd="password"
set mailto=mail@mail.ru
set subject="Тестовая тема"
set bodyfile=file_body.txt

set attach=file.txt

%mailsender% -smtp %smtpserver% -port %smtpport% -ssl -auth -user %smtpuser% -pass %smtppwd% -t %mailto% -f "%smtpsender%" -name "%smtpsenderfullname%" -cs Windows-1251 +cc +bc -q  -sub %subject%  -attach "%bodyfile%,text/plain,i" -attach "%attach%,text/plain,a" 



все возможности mailsend можно глянуть вот так:

Code: (.bat) [Select]
mailsend.exe  -help
pause



Quote
Хорошая находка, Raven-foraven)

и действительно, много раз пытался отправить чтонибудь на почту темже "blat" или "telnet", все без результатов. а тут на тебе, работает мгновенно и без нареканий  :D . нужно еще как нибудь подумать в будущем насчет приема почты из кликера  ::)...
« Last Edit: February 02, 2018, 09:33:37 PM by dramster »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Письмо на почту
« Reply #8 on: February 06, 2018, 02:53:58 AM »
нужно еще как нибудь подумать в будущем насчет приема почты из кликера  ::)...

поиски по данному вопросу привели меня к утилите curl - https://curl.haxx.se/dlwiz/?type=bin - я брал win64-общий-любые-x86_64

немного глянул описание, вроде она может и принимать и отправлять почту, и еще много чего может. нашел русский -help http://osxh.ru/terminal/command/curl . еще есть встроенный manual (curl.exe --manual) который не влазит в консоль  :D .

примеров по использованию не нашел, пришлось самому думать что к чему. максимум, который мне удалось выжать из этой проги, это :

Code: (text) [Select]
curl.exe pop3s://pop.mail.ru/1 -u "user@mail.ru:password" --ssl-reqd -o "file.txt"
pause

в pop3s://pop.mail.ru/1   единица - это номер письма, причем это последнее письмо, и отсчет идет с низу в верх
если без -o "file.txt", то все содержимое будет в консоли, а с -o "file.txt" сразу записывается в файл.

все бы хорошо, но никак не разобрался с кодированием, часть текста в hex, часть ваще хз в какой кодировке, неразбериха

вот пример письма отправленного самому себе, поэтому все адреса почты в нем заменены на "user@mail.ru".

[spoiler=file.txt]
Code: (text) [Select]
Delivered-To: user@mail.ru
Return-path: <user@mail.ru>
Received: by f501.i.mail.ru with local (envelope-from <user@mail.ru>)
id 1eipCj-0001Uc-Ck
for user@mail.ru; Tue, 06 Feb 2018 01:25:37 +0300
Received: by e.mail.ru with HTTP;
Tue, 06 Feb 2018 01:25:37 +0300
From: =?UTF-8?B?0KDQvtC30LAg0JXQstGB0LXQtdCy0LA=?= <user@mail.ru>
To: user@mail.ru
Subject: =?UTF-8?B?dGVzdA==?=
MIME-Version: 1.0
X-Mailer: Mail.Ru Mailer 1.0
Date: Tue, 06 Feb 2018 01:25:37 +0300
Reply-To: =?UTF-8?B?0KDQvtC30LAg0JXQstGB0LXQtdCy0LA=?= <user@mail.ru>
X-Priority: 3 (Normal)
Message-ID: <1517869537.658742505@f501.i.mail.ru>
Content-Type: multipart/alternative;
boundary="--ALT--4FiG57GXonwiHIa9PPE0FzwTApyu2xHh1517869537"
Authentication-Results: f501.i.mail.ru; auth=pass smtp.auth=user@mail.ru smtp.mailfrom=user@mail.ru
X-7FA49CB5: 0D63561A33F958A58D95B4B50E39AF20008C7D8D26C333B2CDE68D5150A83F75725E5C173C3A84C319BDCFFEB55576A42FEAE9FBE133ECED6B0B6A749F1976AFC4224003CC836476C0CAF46E325F83A50BF2EBBBDD9D6B0F93F060FBA3C93C613B503F486389A921A5CC5B56E945C8DA
X-Mailru-Sender: ABB359388B2CAF62F1D25AED39E48B05AD07C51AE765B429729FFFB856B7EA79691C7C071706BDE0F28C6DEAA78ABAF48276199107591D510665BA1767DA33FC8ED20C74A2FAA37A71411EEB1D8EF5D9E926D9D7C015DB0D9E7E8FB42C615610424BA9926E0230520D4ABDE8C577C2ED
X-Mras: OK
X-Spam: undefined


----ALT--4FiG57GXonwiHIa9PPE0FzwTApyu2xHh1517869537
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

Cgp0ZXN0IHRleHQ=  //если я не ошибаюсь, то тело письма в этой строке
----ALT--4FiG57GXonwiHIa9PPE0FzwTApyu2xHh1517869537
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

CjxIVE1MPjxCT0RZPjxicj48YnI+dGVzdCB0ZXh0PC9CT0RZPjwvSFRNTD4K
----ALT--4FiG57GXonwiHIa9PPE0FzwTApyu2xHh1517869537--
[/spoiler]

в этом письме заголовок=test , тело=test text . а что тут к чему, я не понять  :-\.

в общем если кто-то хоть немного разбирается в этом всем, ждем ваших советов и ответов  ::)



во, проверил, тело письма - Cgp0ZXN0IHRleHQ= из base64 в utf-8 получаем "test text" . но как это все замутить программно?

« Last Edit: February 06, 2018, 03:05:29 AM by dramster »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Письмо на почту
« Reply #9 on: February 06, 2018, 11:50:16 AM »
А это заголовок
Subject: =?UTF-8?B?dGVzdA==?=

dGVzdA==    - это test


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Письмо на почту
« Reply #10 on: February 06, 2018, 01:49:11 PM »
еще немного опытов.
оказалось, если отправлять с mail.ru на mail.ru, то тело приходит в base64. для декодирования можно использовать certutil.exe, встроен в ОС, кроме винХР (нужен пак https://www.microsoft.com/en-us/download/confirmation.aspx?id=16770) . если же отправлять к примеру через почтовый клиент или с яндекса, то текст в читаемой кодировке приходит . при этом, в каждом случае тело сообщения находится в разных местах. в общем универсального приемщика сделать не получится, в каждом случае нужен свой подход.

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

register

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Письмо на почту
« Reply #11 on: May 25, 2018, 11:22:56 AM »
Quote
в pop3s://pop.mail.ru/1   единица - это номер письма, причем это последнее письмо, и отсчет идет с низу в верх
Есть ли вариант наоборот, получить самое свежее письмо?

То есть я знаю, что письмо должно прийти в течении скажем 1-4 минут. Как бы мне получить именно свежее письмо, в то же время не спутав его с другим (почти таким же), которое я получил например 5 минут назад.

register

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Письмо на почту
« Reply #12 on: May 25, 2018, 11:52:31 AM »
удаляйте письма сразу после получения
Хорошая идея, оставлю тут если кому-то понадобится
Code: [Select]
curl.exe pop3s://pop.mail.ru/1 -u "login@mail.ru:pass" --request dele --list-onlyХотя вроде можно сделать в один этап (получение+удаление), но пока не нашел как

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Письмо на почту
« Reply #13 on: January 04, 2019, 06:34:55 PM »
  Многим в последнее время вдруг понадобилось удаленное общение с кликерманом  :D . И я вот не пойму, почему бы не использовать уже готовые варианты  :-\.

  Я поднял свои старые архивы и набросал простенький пример по общению с кликерманом через почтовый клиент. Работает учень крассиво  ;D - https://youtu.be/nQ5bdNLLAcQ Можете глянуть, записал видос. Код давать не вижу смысла, это демонстрация удаленного общения. В качестве почтового клиента использовал Mozilla Thunderbird, но подойдет и любой другой, можно и с телефона.


  В этой теме предоставлены все примеры для работы с почтой - прием, отправка, удаление, проверка на наличие... Хотя может чегото и нету  :D , сейчас добавлю.

  Вот все примеры для работы с почтой через curl на примере с gmail.com. Можно выполнять как через .bat, так и просто составляя строку и вызов через EXECUTE  :

Прием писем:
curl.exe pop3s://pop.gmail.com/1 -u "login@gmail.com:password" --ssl-reqd -o "mail_in.txt"
pop.gmail.com/1 - единица, это номер письма начиная со старых. Поэтому желательно ненужные сразу удалять и вести подсчет.
"mail_in.txt" - файл где сохранится письмо.

Проверка на наличие писем, их количество:
curl.exe pop3s://pop.gmail.com/ -u "login@gmail.com:password" --ssl-reqd -o "check_ib.txt"
"check_ib.txt" - в этом файле сохранится список входящих писем (с какимито кодами), каждая строка = письмо.

Удаление писем:
curl.exe pop3s://pop.gmail.com/1 -u "login@gmail.com:password" --request dele --list-only
Номер письма "1" - также как и с приемом.

Отправка письма:
curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --mail-from "login@gmail.com" --mail-rcpt "login@gmail.com" --upload-file mail_out.txt --user "login@gmail.com:password" --insecure
Тут с параметрами вроде все понятно. Файл письма - mail_out.txt. Выглядит он примерно так:
Code: (текст) [Select]
From: "От меня" <login@gmail.com>
To: "Для тебя" <login@gmail.com>
Subject: "Тема письма"

Текст письма.

Можно отправлять вложения (фото там всякие). Примеры гдето выше вроде есть...

Сама утилита в разных ее вариациях по этой ссылке https://curl.haxx.se/dlwiz/ .

Возможно придется поиграть с кодировками. В моем примере с gmail - curl отправляет письма в юникоде. Но кликерман принимает входящие только в windows-1251.

Вообще, у утилиты уйма возможностей, я разобрался только с почтой.