Я пытаюсь получить одну строку UNIX для чтения, а затем удалить электронное письмо (потому что я хочу вызывать одну строку из функции C++).Чтение почты SMTP в одной строке
Если я делаю это:
/bin/echo -ne "USER [email protected]\nPASS fred\nLIST\nRETR 1\nQUIT" | /usr/bin/nc -i 1 mail.site 110
... она отлично работает, возвращая содержимое почты.
Моя проблема удаления бит - я должен удалить почту после его прочтения, но, по некоторым причинам, ниже команда не работает:
/bin/echo -ne "USER [email protected]\nPASS fred\nLIST\nDELE 1\nQUIT" | /usr/bin/nc -i 1 mail.site 110
Выход:
+OK Dovecot ready.
+OK
+OK Logged in.
+OK 2 messages:
1 3913
2 3925
.
+OK Marked to be deleted.
... но если я повторяю команду LIST, обе письма все еще появляются.
Команда DELE отлично работает, если я подключаюсь к telnet и выполняю ее интерактивно, но не с одной строки.
Любые идеи?
Несвязанный с вашей проблемой, но правильная последовательность конца строки - CRLF ('' \ r \ n "'). –