Получить количество писем в определенном каталоге на почтовом сервере

Как сказал фонбранд, вы никогда не должны использовать такие символы в пароле, который вы должны вводить в консоли ! Консоль - это последнее, что нужно сделать.

Теперь, чтобы ответить на ваш вопрос:

Во-первых, вы должны убедиться, что консоль находится в режиме utf-8, если вы хотите ввести utf-8 (в противном случае вам придется вернуться к вводу отдельных байтов utf-8 последовательности, ай!), и вам также необходимо иметь загруженный шрифт, который показывает эти символы (однако для основных латинских букв это не должно быть проблемой).

Вы можете ввести его тремя способами: * если у вас работает мышь и gpm, вы можете скопировать и вставить их (напишите сообщение приветствия входа, чтобы отображались все нужные вам символы Unicode)

  • иметь необходимые символы Unicode, доступные на клавиатуре вашей консоли (например: «U + 00FC» для строчной буквы «ü»)

  • , имеют символ dead_diaeresis (и / или любые другие необходимые мертвые клавиши) на клавиатуре консоли и определение файла композиции . обратите внимание, однако, что если он не изменился с прошлого раза, файл компоновки использует 8-битный формат, он некрасиво конвертируется в Unicode; он работает только тогда, когда результат находится в диапазоне от 0x0001 до 0x00ff (что является случаем «ü»)

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

2
17.02.2019, 16:01
3 ответа

Мне удалось найти более простой способ делать то, что мне нужно, используя Curl и протокол IMAP:

curl --url "imaps://imap.gmail.com" --user "<email address>":"<password>" -X 'STATUS [Gmail]/Spam (MESSAGES)'

Стандартный вывод для этой команды будет следующим: (где X — количество присутствующих сообщений, как прочитанных, так и непрочитанных):

* STATUS "[Gmail]/Spam" (MESSAGES X)
1
27.01.2020, 22:17

Вы можете попробовать это так:

telnet mailhost 110 >/tmp/outfile <<EOF
USER username
PASS password
LIST
QUIT
EOF
NMSG=$(tail -3 /tmp/outfile|awk '{print $1;exit}')

И вы получите в переменной NMSGколичество сообщений. Я не уверен, что поп может иметь дело с почтовыми папками. Он просто сообщает о сообщениях в почтовом ящике. В случае реализации SSL/TLS POP3 вы можете использовать такой код:

openssl s_client -connect mailhost:995 >/tmp/outfile <<EOF
USER username
PASS password
LIST
QUIT
EOF
NMSG=$(tail -3 /tmp/outfile|awk '{print $1;exit}')

Если ваше программное обеспечение для доставки почты помечает СПАМ-сообщения, добавляя слово «СПАМ» в тему, вы можете попробовать в качестве последней строки скрипта что-то вроде:

NMSG=$(grep SPAM /tmp/outfile|wc -l)
0
27.01.2020, 22:17

Подключиться к Gmail сложно, поскольку Google пытается отговорить людей от использования других почтовых клиентов, кроме веб-браузеров. Сначала вам нужно посетить аккаунт Google и проверить настройку, которая разрешает «приложениям и устройствам доступ к вашему аккаунту менее безопасным способом ». Затем Google будет часто спамить ваш почтовый ящик с просьбой снять этот флажок.

Теперь к делу. Для доступа к gmailчерез imap (google не одобряет поп-протокол, как и я ), вам нужно использовать порт 993и добавить контрольную строку к опции openssl. Папка со спамом [Gmail]/Spamи, как я понял, вы хотите получить ее следующий уникальный идентификатор, поэтому типичная сессия должна выглядеть так:

$ openssl s_client -connect imap.gmail.com:993 -crlf

CONNECTED(00000003)
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = Google Internet Authority G3
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = imap.gmail.com
verify return:1
---

[...]

---
* OK Gimap ready for requests from 10.0.0.1 n9mb133f65154lxl

a1 LOGIN <user> <password>
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE APPENDLIMIT=35651584
a1 OK user@gmail.com authenticated (Success)

a2 STATUS "[Gmail]/Spam" (UIDNEXT)
* STATUS "[Gmail]/Spam" (UIDNEXT 2127)
a2 OK Success

a3 LOGOUT
* BYE LOGOUT Requested
a3 OK 73 good day (Success)
read:errno=0

Фактически введенные вами команды начинаются с тегов aN. Теги обязательны по протоколу imap, поэтому не забывайте о них; они не должны быть в форме aN, подойдет любая строка. Очевидно, измените <user>и <password>на свои.

1
27.01.2020, 22:17

Теги

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