Клиентская сторона Только автономный клиент / ретранслятор SMTP, для отправки почты напрямую
Обычно, когда вы отправляете электронное письмо (с Thunderbird или Outlook), вы не отправляете его напрямую.
пример: у меня есть адрес электронной почты, и я хочу отправить электронное письмо на адрес myopera. Процесс будет:
пользователь-> сервер Gmail (gmail-smtp-in.l.google.com)-> сервер myopera (in1.smtp.messagingengine.com)-> конечный пользователь, который загрузит его электронную почту с помощью pop/imap.
Одним из неудобных является размер: представьте, что у вас есть вложение 50 МБ: предел миоперы составляет 60 МБ; но лимит gmail составляет 25 МБ, поэтому письмо будет отклонено, тогда как оно будет принято, если оно было отправлено непосредственно в myopera.
Но я видел с telnet, что можно отправлять почту напрямую с помощью команд SMTP.
Я хочу написать только клиентское веб-приложение, которое конвертирует почту в набор SMTP-команд для отправки. Я должен быть очень простым и не поддерживать шифрование
Я не знаю, как создать TCP-соединение от клиента, поэтому вот мои вопросы: библиотека уже существует? Если нет, что я должен использовать? Я читал о существовании WebSockets, но Ajax будет более универсальным.
Кроме того, большинство реальных реализаций WebSocket, которые я видел, не работают в моих последних версиях веб-браузера, несмотря на то, что они "поддерживают". Есть также сырой Socket API от W3c (я не имею представления о веб-браузерах, которые на самом деле его поддерживают).
Итак, я хотел бы не избегать утверждений о том, что невозможно создать почти необработанный сеанс TCP/UDP. Поскольку это возможно, я не могу себе представить, чтобы никто не создал библиотеку для работы с протоколами.
2 ответа
Вы должны выбрать альтернативный маршрут.
Если бы у меня была такая проблема, я бы все равно использовал какой-либо компонент на стороне сервера и просто имел бы контакт с сервером для получения почтового сервера напрямую.
Учитывая адрес электронной почты: "someuser@somedomain.tld", вы можете выполнить поиск записи MX MX в "somedomain.tld" и найти на принимающем почтовом сервере сообщение "mail.somedomain.tld", после чего вы можете указать компоненту отправки почты отправить отправьте электронное письмо непосредственно на адрес mail.somedomain.tld. Таким образом, вы получите немедленную обратную связь о том, через почту прошло или нет.
Для Objective-C вы можете использовать https://github.com/jetseven/skpsmtpmessage
Посмотрев на источник, вы увидите, как работает SMTP.