電子郵件將以 HTTP 要求的形式傳送至您的應用程式。如要處理內送電子郵件,您必須在應用程式設定中將電子郵件地址與 Servlet 建立關聯,然後在應用程式中加入 Servlet 程式碼。內送電子郵件會產生 HTTP 要求,並傳遞至適當的 Servlet 進行處理。
設定應用程式以接收電子郵件
建立新的應用程式時,預設會停用傳入電子郵件。如果您沒有明確啟用傳入電子郵件,則系統會忽略傳送至應用程式的電子郵件。
如要啟用電子郵件服務,請修改 appengine-web.xml
和 web.xml
設定檔:
在 appengine-web.xml 中啟用電子郵件
修改 appengine-web.xml
,新增可啟用內送電子郵件服務的 inbound-services
區段:
電子郵件會透過下列網址,以 HTTP POST 要求的形式傳送至您的應用程式:
/_ah/mail/<ADDRESS>
其中 <ADDRESS>
是完整的電子郵件地址,包括網域名稱。請注意,即使應用程式部署在自訂網域中,您的應用程式也無法接收傳送至該網域內地址的電子郵件。
在 web.xml 中啟用電子郵件
將電子郵件網址對應至 Servlet,藉此修改 web.xml
:
在上述程式碼片段中,/_ah/mail/*
會比對所有傳送至應用程式的電子郵件。郵件 Servlet 會在 App Engine 中目前提供服務的應用程式版本中執行。
傳入電子郵件的模式分派
如果應用程式使用模式比對,請考慮依據下列程式碼片段使用篩選器方法。
具體處理常式
上述具體處理常式是使用 web.xml
中的下列程式碼片段註冊:
請注意,篩選器無法使用 security-constraint
指令,必須透過其他方式導入處理常式的安全性政策。
抽象處理常式
處理傳入電子郵件
JavaMail API 包含 MimeMessage
類別,可用於剖析收到的電子郵件。MimeMessage
所含的建構函式可以接受 java.io.InputStream
和 JavaMail 工作階段,其中設定可保持空白。
建立類似這樣的 MimeMessage
執行個體:
接著,您可以使用各種方法剖析 message
物件:
- 呼叫
getFrom()
即可傳回訊息的傳送者。 - 呼叫
getContentType()
即可擷取訊息內容類型。getContent()
方法會傳回實作Multipart
介面的物件。 - 呼叫
getCount()
判斷零件數量 - 呼叫
getBodyPart(int index)
即可傳回特定身體部位。
設定應用程式以處理傳入電子郵件後,就可以使用開發伺服器主控台來模擬傳入電子郵件。如要進一步瞭解啟動開發伺服器的方式,請參閱 Java 開發伺服器。在本機開發伺服器中啟動應用程式後,請前往 http://localhost:8888/_ah/admin/ 網址存取應用程式。如果未使用本機開發伺服器的預設通訊埠,請將 8888 替換為您使用的通訊埠。
在開發伺服器中,按一下左側的 [傳入郵件],填寫顯示的表單,然後按一下 [傳送電子郵件]。