Интеграция электронной почты в мобильное приложение
Интеграция электронной почты в мобильное приложение — задача с несколькими уровнями сложности. Можно открыть нативный почтовый клиент через mailto: и назвать это интеграцией. Можно отправлять транзакционные письма через SMTP прямо с устройства, что в продакшене никто не должен делать. А можно правильно — через API почтового провайдера с сервера, но с удобным интерфейсом в приложении. За годы работы мы накопили опыт всех трёх подходов и знаем, какие подводные камни ждут на каждом пути. Мы гарантируем надёжную и безопасную интеграцию, соответствующую стандартам App Store и Google Play.
Какой способ интеграции подходит вашему проекту?
Выбор метода интеграции зависит от сценария использования. Мы выделяем три основных, каждый со своими особенностями.
Сценарий 1: Открытие нативного клиента. Самый простой. На iOS — MFMailComposeViewController из MessageUI.framework, на Android — Intent.ACTION_SENDTO с Uri.parse("mailto:"). Подходит когда нужно просто дать пользователю написать письмо — в поддержку, например. Подводный камень: MFMailComposeViewController недоступен на симуляторе и на устройствах без настроенной почты. Всегда проверяем MFMailComposeViewController.canSendMail() перед показом, иначе краш. На Android аналогично — Intent.resolveActivity().
Сценарий 2: Транзакционные письма через API. Регистрация, сброс пароля, уведомления о заказах — письма отправляются с сервера, приложение только инициирует запрос. Выбор провайдера:
| Провайдер | SDK | Free tier |
|---|---|---|
| SendGrid | REST API + официальный SDK | 100 писем/день |
| Mailgun | REST API | 100 писем/день |
| Amazon SES | AWS SDK | 62k писем/мес (внутри AWS) |
| Postmark | REST API | Нет бесплатного |
Мобильное приложение делает запрос на свой backend (POST /api/send-email), backend вызывает API провайдера. Ключи API никогда не хранятся в приложении. Такой подход в 10 раз безопаснее, чем отправка SMTP с устройства, и гарантирует доставку.
Сценарий 3: Чтение и отправка почты в интерфейсе приложения. Полноценный почтовый клиент внутри приложения — это IMAP/SMTP или Graph API (Outlook) / Gmail API. Для Gmail: авторизация через OAuth 2.0, получение списка писем через users.messages.list, тела через users.messages.get. Квоты API Gmail — 250 единиц за запрос, лимит 1 млрд единиц в день на проект. При активном использовании нужно следить.
| Критерий | IMAP | Gmail API | Graph API |
|---|---|---|---|
| Сложность | Высокая (управление сессиями) | Средняя | Средняя |
| OAuth | Да | Да | Да |
| Push-уведомления | Через IMAP IDLE (требует TCP) | Через Pub/Sub | Через webhooks |
| Производительность | Зависит от сети | Быстрый (JSON) | Быстрый (JSON) |
Почему стоит доверить интеграцию почты профессионалам?
Интеграция, выполненная с учётом всех нюансов, экономит до 40% времени на отладку. Мы — команда с 5+ летним опытом, реализовавшая почтовую интеграцию в 15+ проектах. Мы учитываем особенности платформ: на iOS — URLSession и security-scoped bookmarks для вложений, на Android — MediaStore и ACTION_OPEN_DOCUMENT. Без этого — ошибки доступа и нестабильность.
Работа с вложениями
Вложения в мобильном контексте требуют осторожности. На iOS файлы из UIDocumentPickerViewController доступны через security-scoped bookmarks и требуют явного вызова startAccessingSecurityScopedResource() / stopAccessingSecurityScopedResource(). Без этого получаем NSCocoaErrorDomain с кодом 257. На Android с API 30+ прямой доступ к /sdcard закрыт — только через MediaStore или ACTION_OPEN_DOCUMENT. Для загрузки вложений из письма — потоковая загрузка с прогрессом, URLSession.downloadTask на iOS или OkHttp с ResponseBody.byteStream() на Android. Не буферизуем всё в памяти, если вложение может быть большим. Мы гарантируем корректную обработку вложений до 25 МБ на обеих платформах.
Пуш-уведомления о новых письмах
Для real-time уведомлений о входящих письмах IMAP IDLE держит TCP-соединение — на мобильном это убивает батарею в 2 раза быстрее. Правильный путь: сервер слушает IMAP IDLE, при новом письме отправляет push через FCM/APNs. Приложение получает пуш, делает запрос и обновляет список. Мы внедряем этот механизм, чтобы обеспечить низкую задержку без ущерба для автономности.
Что входит в работу
При заказе интеграции мы предоставляем:
- Аудит текущей архитектуры и выбор оптимального метода.
- Разработку и настройку backend-компонентов (API-ключи, шаблоны, OAuth).
- Интеграцию SDK почтового провайдера и push-уведомлений.
- Тестирование на реальных устройствах и в симуляторах.
- Документацию по эксплуатации и поддержку после запуска.
Оценка сроков: простая интеграция отправки транзакционных писем — 2-3 дня. Встроенный почтовый клиент с IMAP/OAuth — от 3 до 6 недель. Точная стоимость рассчитывается индивидуально — свяжитесь с нами для консультации. Закажите внедрение почтовой интеграции в ваше приложение и получите надёжное решение с гарантией.
Gmail API — основной инструмент для работы с почтой Google.







