Проблема отправки почты через SMTP

Мое приложение iOS использует Mailcore для доступа к учетной записи электронной почты пользователя. Отправка и получение осуществляется через SMTP и IMAP, и оба процесса работают как положено для Gmail и Outlook (оба используют OAuth для входа в систему).

Я только что добавил Yahoo (а также некоторых других провайдеров в приложение, которые не используют OAuth), и для всех этих провайдеров у меня возникла проблема именно с отправкой сообщений.

Проблема заключается в том, что, хотя сообщения МОГУТ успешно отправляться из моего приложения, они не отображаются в отправленной папке в Интернете для провайдера.

Например, если я войду в свою учетную запись Yahoo в своем приложении и отправлю сообщение в свою учетную запись Gmail, сообщение появится в моей папке входящих сообщений Gmail в Интернете, но не в моем ящике отправки Yahoo в Интернете.

Я попытался добавить Yahoo в обычное почтовое приложение на iPhone и отправить сообщение с этого аккаунта - это работало нормально - в сообщении отображается окно отправки Yahoo в Интернете. Затем я сравнил заголовки двух сообщений (отправленного из почтового приложения и отправленного из моего приложения), и единственное очевидное отличие, которое я вижу, заключается в строке "X-Rocket-Received":

Почтовое приложение:

X-Rocket-Received: from [11.180.250.219] (userName@71.208.72.234 with xymcookie [216.39.61.254])
    by smtp203.mail.ne1.yahoo.com with SMTP; 23 May 2014 08:19:54 -0700 PDT

Мое приложение:

X-Rocket-Received: from  (userName@118.41.27.139 with plain [98.138.105.21])
    by smtp214.mail.ne1.yahoo.com with SMTP; 23 May 2014 08:58:29 -0700 PDT

Может ли кто-нибудь ответить на любой из следующих вопросов для меня:

1) Что означает X-Rocket-Received?

2) Каково значение "с xymcookie" против "с равниной"?

3) Вероятно, моя проблема связана с тем, что у меня нет xymcookie?

4) Где я могу начать решать эту проблему?

Большое спасибо.

2 ответа

Решение

При отправке электронной почты напрямую через SMTP электронная почта не помещается в папку "Отправленные". Вы должны войти в провайдера с помощью IMAP и поместить копию сообщения электронной почты в папку "Отправленные" в качестве отдельной операции. Приложения более высокого уровня, такие как почтовое приложение iPhone, обрабатывают эти детали внутренне.

Дополнительная информация:

  1. Он был размещен там каким-то сервером по пути. Это нестандартный заголовок. Это похоже на стандартный заголовок полученного SMTP.
  2. "xymcookie" - это нестандартный метод аутентификации, используемый Yahoo. Насколько я могу судить, публично это не документировано.
  3. Нет.
  4. Смотрите ответ Реми. Используйте IMAP Append для большинства серверов. Gmail не требует этого, но это нестандартно.
Другие вопросы по тегам