Я пишу приложение App Engine, которое должно получать электронные письма в этой форме:
addcontact.someID@my-app.appspotmail.com (someID - это буквенно-цифровой идентификатор, который я генерирую).
У меня есть это в моем web.xml, я думаю, что это будет ловить электронные письма, которые начинаются
с 'addcontact.':
<servlet>
<servlet-name>addNewContactServlet</servlet-name>
<servlet-class>com.mycompany.server.AddNewContactServlet</servlet-
class>
</servlet>
<servlet-mapping>
<servlet-name>addNewContactServlet</servlet-name>
<url-pattern>/_ah/mail/addcontact.*</url-pattern>
</servlet-mapping>
Однако, как на моем компьютере разработчика, так и на серверах Google электронная почта не
получено. На компьютере разработчика я получаю это сообщение (я получаю похожую ошибку
в развернутом журнале)
Ошибка отправки сообщения
ОШИБКА HTTP 404
Проблема с доступом / _ah / mail /
addcontact.z1vnq3p2bvtfsuzbxg13sfon@myapp.appspotmail.com.
Причина:
NOT_FOUND
Я могу получать электронную почту на полностью указанные адреса или когда я использую / _ah / mail / *
Документация Google заставила меня поверить, что в web.xml можно включить частичные адреса электронной почты. Я не правильно использую подстановочный знак? Связан ли период с этим? Можно ли это как-то сделать?
Причина, по которой я думаю, что это должно работать, заключается в документации Google по адресу: http://code.google.com/appengine/docs/java/mail/receiving.html
В нем есть файл примера web.xml:
<servlet>
<servlet-name>handleowner</servlet-name>
<servlet-class>HandleOwner</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>handleowner</servlet-name>
<url-pattern>/_ah/mail/owner*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>handlesupport</servlet-name>
<servlet-class>HandleSupport</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>handleowner</servlet-name>
<url-pattern>/_ah/mail/support*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>catchallhandler</servlet-name>
<servlet-class>MailCatchallServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>catchallhandler</servlet-name>
<url-pattern>/_ah/mail/*</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<url-pattern>/_ah/mail/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
Похоже, что адреса электронной почты поддержки и владельца подстановочные, чтобы соответствовать любому, начинающемуся с этого адреса.