Программная вставка сообщений в учетную запись электронной почты с помощью CPanel API

Я ищу способ программно вставлять сообщения в конкретную учетную запись электронной почты — созданный и поддерживаемый с CPanel.

У меня есть веб-сайт, который предоставляет интерфейс веб-почты для обмена сообщениями во внутренней видеоигре (с использованием его API), и я хотел бы сделать этот сервис еще одним шагом и сделать сообщения доступными на POP3-сервере.

Пока я искал решение несколькими способами:


Вставьте почту с помощью API CPanel: Я не мог найти вызов API для этого, только для создания новых учетных записей (с https://documentation.cpanel.net/display/SDK/UAPI+Functions+-+Email%3A%3Aadd_pop) Для меня это предпочтительный метод, так как я бы предпочел оставить файловую систему в покое.


Вручную вставьте письма в файловую систему: Я узнал, что Cpanel хранит данные электронной почты в корень / почта / домен / пользователь / но я не знаю точную структуру файла. Я распознаю файл maildirsize и другие каталоги, содержащие письма, но я не знаю структуры файла maildirsize (кажется, содержит 2 целых числа, разделенных пробелом в строке), а также имена файлов почтового файла также не очевидны. Это пример имени файла:

1422094110.H186037P182351.hosting-server-domain.com,S=15645

Я бы предпочел использовать этот метод в качестве метода резервного копирования, потому что имеется очень мало (или я не нашел полезной) документации.


Просто отправьте по электронной почте все сообщения с пользовательскими заголовками: Это был бы самый простой способ, однако хостинг-провайдер имеет очень строгую политику защиты от спама, и количество исходящих сообщений ограничено.


Реализуйте собственный сервер POP3: Я поиграл с PHP-реализацией @cleong (https://stackoverflow.com/a/11973533/1030464) и хотя он работал на localhost, я не уверен, что это будет радость на живой странице. Я также нашел реализацию Perl, которую, возможно, стоит попробовать, но я никогда не работал с Perl, и я предпочел бы взглянуть на другое решение, прежде чем узнавать, как реализовать и интегрировать этот модуль.

Спасибо, что прочитали все это,

Балинт

1

Решение

Похоже, электронная почта хранится в формате Maildir. Это делает вставку писем довольно простой. Для получения полной информации см. Спецификация Maildir, но в заключение:

  • Самое сложное: создать гарантированное уникальное имя для почты, используя методы, предложенные на этой странице (например, локальное имя хоста, метка времени с высоким разрешением и случайное число высокого качества).
  • Создайте файл с этим именем в .../Maildir/tmp/
  • Переименуйте файл, чтобы быть под .../Maildir/new, Этот шаг переименования гарантирует, что почтовое программное обеспечение увидит только полностью сформированные письма — то есть никакой другой процесс не будет пытаться просмотреть файл, когда вы наполовину пишете его.

Это оно!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]