簡體   English   中英

從Web應用程序中發送/接收電子郵件?

[英]Send/Receive Email from within Web Application?

我有一個訂單管理(Web)應用程序(在Java / Java EE中)。

應用程序用戶希望從Web應用程序中向發出訂單的客戶發送接收電子郵件通信。 電子郵件路徑必須與訂單相關聯。

用例是

  1. 用戶打開訂單明細頁面。 訂單信息 被陳列。
  2. 在該頁面上 - 點擊電子郵件圖標,它將顯示該訂單到目前為止的所有電子郵件通信(已發送/已接收)。
  3. 對於該訂單 - 您可以查看新收到的郵件,回復郵件或向客戶發送新郵件 - 所有這些都與該訂單相關。

問題:

  1. 發送電子郵件很簡單,但如何在應用程序中接收電子郵件?
  2. 這里的電子郵件帳戶是什么 - 一個名為orders@myorg.com的常見電子郵件帳戶(基於主題行/某些標題電子郵件被過濾等)或者是orderid@myorg.com(在這種情況下,新的電子郵件帳戶創建是按訂單要求)還是?
  3. 我們已經有Microsoft Exchange Server,公司電子郵件通過該服務器傳輸。 我們可以在某種程度上利用它,還是我們需要設置一個新的郵件服務器?

歡迎任何想法。

如果您願意承擔依賴關系, 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服務器。

雖然使用起來並不麻煩,但我建議您根據彈簧EAI 概述簡要介紹EAI

您需要以下內容。

  1. Java Mail API以編程方式通過某些Exchange服務器發送電子郵件。
  2. 我建議使用專用的電子郵件服務器來接收特定於應用程序的電子郵件。 你可以用詹姆斯來做到這一點。 您可以通過此軟件發送和接收電子郵件。
  3. 如果使用現有的Microsoft Exchange Server,則始終可以使用重定向到特定於應用程序的電子郵件服務器。
  1. 接收電子郵件以下是閱讀電子郵件的示例代碼是否有任何好的短代碼示例只是讀取新的Gmail郵件?

  2. 此處的電子郵件帳戶為每個用戶創建一個電子郵件帳戶,並將用戶的Web應用程序憑據用作電子郵件的憑據。 使用散列訂單ID作為主題的一部分,以將每個電子郵件鏈與特定訂單相關聯。

  3. Microsoft Exchange Server使用exJello是JavaMail提供程序( http://www.exjello.org/ )或使用JavaMail API與DavMail Gateway( http://davmail.sourceforge.net/

從用戶的角度來看,我認為保留一個特定的主題更加困難。 我會建議像myapp.myorg.com這樣的子域名或像myapp.com這樣的新域名

無論哪種方式都可以捕獲所有郵件,以便所有郵件都轉到特定的電子郵件,如orders@myapp.myorg.com

然后你的腳本可以檢查真正的TO。 這可能更自然,更“酷” - >每個訂單都有自己的郵件ID! 最重要的是使用James或其他郵件軟件來交付您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM