Автоматическое удаление электронной почты

Проблема:

Я ищу способ создать программу, которая посещает хост-сайт электронной почты и входит в систему с определенными учетными данными, удаляет все сообщения в папке «Входящие» и очищает папку «Корзина».

Фон:

У меня есть электронная почта с моим доменом, и эта электронная почта размещена на каком-то сервере интернет-провайдера. Однако я включил автоматическую пересылку всех моих электронных писем на мой gmail, дело в том, что нет возможности автоматического удаления поступающих сообщений, поэтому мой почтовый ящик с его ограниченным размером (10 МБ) переполняется, и я перестаю получать электронные письма. Мое решение до сегодняшнего дня состояло в том, чтобы очистить его вручную, когда я не забуду или когда кто-то позвонит мне и спросит, почему мой почтовый ящик переполнен. Интернет-провайдер сказал, что для решения этой проблемы я должен обновить свою квоту на их сервере за дополнительные $$ в месяц, и я этого делать не буду.

Поэтому я ищу способ сделать это автоматически. Мои впечатления как начинающей программы заключаются в том, чтобы написать скрипт, который делает это и запускается при каждом запуске системы. Моя система должна была быть Windows 7, поэтому я решил решить ее с помощью VBScript.

Это будет мой первый опыт работы с VBScript, поэтому буду рад любым предложениям. С другой стороны, если вы считаете, что есть лучший способ сделать это, чем VBScript, скажите мне :) Я предпочитаю писать программу, которую полностью понимаю, поэтому мой опыт программирования будет следующим: Pascal/ C/C++/Java/C#/ML/Prolog/Squeak(smalltalk)/TCSH(CShell).

Заранее спасибо, Джалиль


person LmSNe    schedule 25.06.2010    source источник


Ответы (2)


Зависит от того, какой почтовый сервер вы используете, но если у вас есть доступ по протоколу POP3, все, что вам действительно нужно сделать, это подключиться к нему с помощью соединения TCP\IP и отправить несколько простых команд. Таким образом, любой язык, в котором у вас есть хорошая библиотека для создания простого соединения, должен подойти.

Ниже я покажу, как вы можете сделать это, просто используя telnet (будьте осторожны, делая это через Интернет, так как это не использует безопасное соединение):

telnet [hostname] 110

USER [username]
PASS [password]
LIST - gets you a list of all emails showing the msgindex and it's size    
DELE [msgindex]    
QUIT - the emails aren't deleted until you send QUIT!

Все, что вам нужно сделать, это создать соединение и отправить эти команды в указанном порядке (ожидая ответа и проверяя, был ли он + или -, чтобы узнать, прошло ли оно нормально или нет).

Что касается языка, если вы хотите использовать язык сценариев, я бы рассмотрел Powershell, поскольку я думаю, что он поддерживает классы .Net framework, и поэтому это будет очень легко сделать.

person Hans Olsson    schedule 25.06.2010
comment
Есть ли какая-нибудь безопасная замена теленту, ведь я планирую сделать это через интернет?! - person LmSNe; 25.06.2010
comment
@lmSNe: я не очень хорош в этих вещах, но вы, вероятно, могли бы получить замазку (chiark.greenend.org.uk/~sgtatham/putty) и настроить подключение с использованием SSL или чего-то еще, чтобы сделать его безопасным (хотя, вероятно, это будет другой порт, может быть, 465 или 587 или что-то в этом роде). Возможно, вы захотите задать еще один вопрос на форуме Superuser о том, как использовать шпатлевку для безопасного подключения к серверу pop3 в целях тестирования или что-то в этом роде. - person Hans Olsson; 25.06.2010
comment
@lmSNe: Если вы хотите сделать это автоматизированным процессом, вы, вероятно, могли бы сделать это безопасно, объединив файлы .Net TcpClient и SslStream. Образец можно найти здесь (msdn.microsoft.com /en-us/library/), который, вероятно, можно было бы адаптировать для подключения к серверу POP3 и отправки простых команд. - person Hans Olsson; 25.06.2010