2015-01-27 3 views
1

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

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

Я искал решение несколько способов до сих пор:


Вставьте почту с помощью API CPanel в: я не мог найти вызов апи для этого, только для создания новых учетных записей (с 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) и в то время он работал на локальном хосте, я не уверен, что это будет авантюра на реальной странице. Я также нашел реализацию Perl, которая, возможно, стоит попробовать, но я никогда не работал с Perl, и я предпочел бы взглянуть на другое решение, прежде чем научиться внедрять и интегрировать этот модуль.

Спасибо за чтение всего этого,

Балинт

+1

Вам нужно будет узнать о *** exim, postfix или sendmail *** в зависимости от того, что эта установка cPanel используется ***, используя MTA ***, там вы найдете всю информацию о почтовом хранилище , – Prix

+0

Спасибо! - сделаю – molbal

ответ

2

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

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

Вот и все!

+0

Спасибо! Это именно то, что я искал! (Я награду за награду за 12 часов, система попросила меня подождать) Редактировать: К счастью, все письма имеют уникальный идентификатор, поэтому я просто использую это. :) – molbal

+0

Реализовано, хорошо работает! Еще раз спасибо, rep передан – molbal

+0

Рад, что он работает! :-) – psmears