2013-04-20 4 views
8

У меня есть приложение управления заказами (Web) (в Java/Java EE).Отправлять/получать электронную почту из веб-приложения?

Пользователи приложения хотят Отправлять Получать электронное сообщение Клиентам, разместившим заказ, из веб-приложения. Email Trail должен быть связан с Ордером.

Потребительная случай:

  1. Пользователь открывает Order Detail Page. Информация о заказе. отображается.
  2. На этой странице - щелкните по значку электронной почты, и он отобразит все сообщения электронной почты (отправленные/полученные) для этого заказа до даты.
  3. Для этого заказа - вы можете видеть новые входящие письма, отвечать на письма или отправлять новые письма Клиенту - все это связано с этим заказом.

Вопросы:

  1. Отправка сообщения электронной почты легко, но как получить электронную почту в приложении?
  2. Что такое учетная запись электронной почты здесь? Обычная учетная запись электронной почты, называемая [email protected] (и на основе сообщений темы темы/некоторых заголовков фильтруется и т. Д.), Или это [email protected] (в этом случае новый создание по электронной почте acct создается по заказу) или?
  3. У нас уже есть Microsoft Exchange Server, через который отправляется электронная почта компании. Можем ли мы использовать это в какой-то момент или нам нужно настроить новый почтовый сервер?

Любые идеи приветствуются.

ответ

3

Вам необходимо следующее.

  1. API Java Mail для программной отправки электронной почты через какой-либо сервер обмена.
  2. Я бы предложил использовать выделенный почтовый сервер для получения электронных писем конкретных приложений. Вы можете сделать это, используя James. Вы можете отправлять и получать электронные письма через это программное обеспечение.
  3. Если вы используете существующий Microsoft Exchange Server, вы всегда можете использовать перенаправление на свой почтовый сервер, специфичный для вашего приложения.
+0

Indoknight> Все электронные письма моей организации (формы «[email protected]») получены с помощью существующего Exchange Server (для сообщений «@ myorg.com»). Если я тоже буду использовать «@ myorg.com», я думаю, что не могу использовать новый/отдельный почтовый сервер. – Jasper

+0

@Jasper Нет проблем, вы все равно можете использовать Java mail API. Я только что нашел статью об этом: 1) http://www.javatpoint.com/example-of-receiving-email-using-java-mail-api 2) http://metoojava.wordpress.com/2010/03/21/java-code-to-receive-mail-using-javamailapi/ – IndoKnight

+0

IndoKnight> Спасибо. Поэтому, возможно, у меня будет один идентификатор электронной почты, такой как [email protected], через который все электронные письма отправляются и отправляются. Пользователи моего приложения должны видеть только электронные письма, относящиеся к конкретному идентификатору заказа, который они просматривают. Я мог бы иметь идентификатор заказа в строке темы и фильтровать на основе этого - но любые другие идеи? – Jasper

5

Если вы готовы взять на себя зависимость, Spring Integration комфортом могут читать электронную почту от назначенного сервера на опрос (POP3, IMAP) или событийно (IMAP-IDLE). [1 & 3]

[2] Вы можете использовать посвятить учетную запись электронной почты и фильтровать почту, посланную вниз по течению каналов, основанных на предмет (или другой области) от входящей почты. Следующий фрагмент кода с сайта Spring иллюстрирует это:

<int-mail:imap-idle-channel-adapter id="customAdapter" 
store-uri="imaps://some_google_address:${password}@imap.gmail.com/INBOX" 
channel="receiveChannel"  
should-mark-messages-as-read="true" 
java-mail-properties="javaMailProperties" 
mail-filter-expression="subject matches '(?i).*Spring Integration.*'"/> 

Где mail-filter-expression фильтры электронной почты, которые будут сброшены вниз receiveChannel. Для всех заинтересованных сторон (каналов) у вас будет один <int-mail:imap-idle-channel-adapter/>, который будет прослушивать ваш сервер Exchange.

Хотя это не обременительно использовать, я рекомендую вам посмотреть на short overview of EAI according to spring и of EAI in general

3
  1. Получение сообщений электронной почты Вот пример кода для чтения почты Are there any good short code examples that simply read a new gmail message?

  2. Учетная запись электронной почты здесь Для каждого пользователя создайте учетную запись электронной почты и укажите учетные данные пользователя веб-приложения в качестве учетных данных для электронной почты. Используйте хешированный идентификатор заказа как часть предмета, чтобы связать каждую цепочку электронной почты с определенным порядком.

  3. Microsoft Exchange Server Использование либо exJello является поставщиком JavaMail (http://www.exjello.org/) ИЛИ Использование JavaMail API с DavMail шлюзом (http://davmail.sourceforge.net/)

1

С точки зрения пользователя, я думаю, сохраняя определенный предмет труднее. Я хотел бы предложить поддомен как myapp.myorg.com или новый домен, как myapp.com

Либо пути есть улов все так, что все письма, перейти к конкретной электронной почте как [email protected]

Тогда ваш скрипт может проверить реальный TO. Это может быть более естественным и «прохладным» -> каждый заказ имеет свой собственный идентификатор почты! Помимо этого, используйте приложение James или другое почтовое программное обеспечение для доставки вашего кода.

+0

, если вам нужно увидеть живой пример этого, можно сделать учетную запись на x10hosting (google it, у них есть бесплатные планы для поддоменов своего домена). На панели управления/почтой можно настроить улов всех – tgkprog

+0

Но я скажу, что миллионы заказов я не могу позволить себе создавать многие идентификаторы почты .... это слишком динамично, так как новые заказы продолжают создаваться в моей системе. – Jasper

+0

вам не нужно создавать никаких. Его поймать все, то есть когда почта приходит на [email protected], если учетная запись электронной почты не существует, она перенаправляется на учетную запись электронной почты по умолчанию (которая может быть частью этого домена или другого (например, default_myapp @ gmail. com) см. http://en.wikipedia.org/wiki/Catch-all | cpanel как http://www.siteground.com/tutorials/email/catch_all_email.htm – tgkprog

Смежные вопросы