Это странный вопрос, но буквальный ответ заключается в том, что почтовый сервис, такой как Google, Yahoo и т. Д., Будет реализовывать это по-разному, в зависимости от того, как они хранят почтовые сообщения и папки. Например, если сообщения электронной почты хранятся в виде отдельных файлов, а папки представлены в виде каталогов, то перемещение сообщения электронной почты в папку со спамом будет выполняться как переименование / перемещение файла. С другой стороны, если почта хранится в базе данных SQL, перемещение сообщения из одной папки в другую будет ОБНОВЛЕНИЕМ строки в (скажем) дескрипторе почты TABLE.
Существует много возможных способов представления сообщений и папок электронной почты, каждый поставщик услуг электронной почты, скорее всего, сделает это по-своему, и у нас нет возможности узнать, как они это делают.
Я бы не стал называть этот процесс "алгоритмом". Конечно, не будет единого алгоритма, учитывая, что представления различаются, и что модели папок различны.
Я не вижу никакой связи между вашим вопросом и тегами "java" или "javamail". Скорее всего, крупные провайдеры не реализуют свои почтовые сервисы на Java.