2017-01-08 4 views
0

Я знаю, что в Интернете есть много статей о отправке писем с кода/C#, и я прочитал их многие, прежде чем публиковать здесь, но я до сих пор не вижу четкой картины о том, как реализовать мои требования:Передача сообщений SMTP SMTP получателю через запись MX

Сценарий:
Моя заявка на mydomain.com получает запрос на передачу какой-то адрес электронной почты (от: [email protected], к: кто-то @ gmail.com. ком/anyother.com).
Мне нужно сделать некоторые манипуляции с содержимым электронной почты.
После того, как я изменил сообщение, мне нужно отправить его напрямую получателю.

Под напрямую получателю Я имею в виду, что я хочу отправить его получателю нашими серверами и не использовать какой-либо сервис/реле SMTP.

Как я понимаю, я могу установить на наши серверы программное обеспечение SMTP и отправить с помощью System.Net.Mail.SmtpClient на наш сервер, и он будет доставлять его получателям с использованием SMTP Relay или каким-либо другим способом, который кодируется внутри этого программного обеспечения ... но я бы как сделать это без использования программного обеспечения SMTP Server ...

До сих пор я обнаружил, что мне нужно обнаружить запись MX для домена получателей, так что, допустим, я нашел запись MX для gmail.com (gmail-smtp-in.l .google.com), но как отправить сообщение на эту запись MX из моего собственного кода на C#?

System.Net.Mail.SmtpClient подходит для решения этой задачи?
Где я могу найти примеры того, как это сделать?

Из моего предыдущего опыта с SmtpClient мне нужно предоставить адрес SMTP-сервера (необязательный порт), учетные данные, но в моем случае, конечно, у меня нет учетных данных, и я не уверен, как получить правильный порт (все ли серверы из записей MX имеют порт 25?).

Спасибо!

+0

Почему в мире вы бы хотели изобрести реле SMTP? –

+0

@ DanWilson В основном потому, что я хочу лучше понять эту тему, и после этого я, наконец, решу, что использовать и как ... но у меня есть некоторые дыры в моей голове относительно того, как все работает. –

ответ

0

Вы не можете надежно использовать записи MX для отправки сообщений непосредственно на SMTP-сервер получателя, потому что многие SMTP-серверы не разрешают анонимный доступ (т. Е. Они требуют некоторой формы аутентификации).

Поскольку вы не можете узнать токены аутентификации, не будет никакого способа выполнить то, что вы пытаетесь сделать.

+0

Звучит странно для меня ... если какой-либо публичный сервер входящей почты компании потребует аутентификации, сотрудники компании просто не получат электронную почту, кроме внутренних писем. Я считаю, что он может сделать некоторую проверку отправителя, чтобы фильтровать спам или что-то еще, но аутентификацию? –

+0

Анонимный доступ запрещен как форма предотвращения спама. – jstedfast