Как сказал фонбранд, вы никогда не должны использовать такие символы в пароле, который вы должны вводить в консоли ! Консоль - это последнее, что нужно сделать.
Теперь, чтобы ответить на ваш вопрос:
Во-первых, вы должны убедиться, что консоль находится в режиме utf-8, если вы хотите ввести utf-8 (в противном случае вам придется вернуться к вводу отдельных байтов utf-8 последовательности, ай!), и вам также необходимо иметь загруженный шрифт, который показывает эти символы (однако для основных латинских букв это не должно быть проблемой).
Вы можете ввести его тремя способами: * если у вас работает мышь и gpm, вы можете скопировать и вставить их (напишите сообщение приветствия входа, чтобы отображались все нужные вам символы Unicode)
иметь необходимые символы Unicode, доступные на клавиатуре вашей консоли (например: «U + 00FC» для строчной буквы «ü»)
, имеют символ dead_diaeresis (и / или любые другие необходимые мертвые клавиши) на клавиатуре консоли и определение файла композиции . обратите внимание, однако, что если он не изменился с прошлого раза, файл компоновки использует 8-битный формат, он некрасиво конвертируется в Unicode; он работает только тогда, когда результат находится в диапазоне от 0x0001 до 0x00ff (что является случаем «ü»)
Обратите внимание, однако, что шансы высоки, что правая раскладка клавиатуры уже существует; просто может быть вы загружаете не ту.
Мне удалось найти более простой способ делать то, что мне нужно, используя Curl и протокол IMAP:
curl --url "imaps://imap.gmail.com" --user "<email address>":"<password>" -X 'STATUS [Gmail]/Spam (MESSAGES)'
Стандартный вывод для этой команды будет следующим: (где X — количество присутствующих сообщений, как прочитанных, так и непрочитанных):
* STATUS "[Gmail]/Spam" (MESSAGES X)
Вы можете попробовать это так:
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)
Подключиться к 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>
на свои.