2009-03-12 6 views
14

У меня есть приложение .Net. Я хочу, чтобы это приложение отправило мне электронное письмо. Как реализовать это без установки SMTP-сервера?Отправка почты без установки SMTP-сервера

+0

Если вам нужен пример кода, вот пример, который показывает вам, как отправить электронное письмо с помощью службы SMTP Gmail. http://gatekiller.co.uk/Post/Send_Emails_with_.NET_and_Gmail – GateKiller

+0

@GateKiller: Спасибо за ссылку, я ценю это – Germstorm

ответ

15

Использование SmtpClient отправить MailMessage не требует, чтобы сервер на локальном компьютере.

Ваш поставщик услуг электронной почты является сервером (например, smtp.gmail.com), и ваш SmtpClient разговаривает с ним.

3

Вы не можете отправлять электронную почту без услуг SMTP-сервера, вам, конечно, не нужно устанавливать ее, просто укажите свой код на SMTP-сервере вашего провайдера или на ваших серверах Exchange (или что они используют).

+0

Этот ответ вводит в заблуждение. Возможно отправить электронное письмо получателю без собственного почтового сервера. Подключение к серверу, идентифицированное записью MX в домене получателей, и передача напрямую. – Brendan

+0

@ Брендан: Я думаю, что, возможно, вы неправильно поняли меня. Я сказал «без услуг __a__ SMTP-сервера». Вы говорите «прямое сообщение», то есть с сервером, на который разрешена запись MX для домена. Этот сервер является __a__ SMTP-сервером. Как вы общаетесь напрямую с целевым SMTP-сервером? Если вы попытаетесь сделать это как клиент, он может расстроиться (или, по крайней мере, должен это сделать), так как вы не являетесь его клиентом. Вы могли бы поговорить с ним, как будто вы являетесь партнером SMTP-сервера, но это большая работа. – AnthonyWJones

+2

И наиболее безопасные места предотвращают это, блокируя исходящий порт 25 в качестве меры фильтрации спама. – tripleee

9

Эта статья Питера Бромберг на eggheadcafe.com

C# SMTP Mail without SMTP Service or CDO

объясняет, как отправить электронную почту, не полагаясь на SMTP клиента:

Отправка почты через TCP с использованием нативного SMTP RFC команды «HELO», «MAIL From», RCPT TO »и т. д. - это не большая проблема. Это один из первых трюков, которые мы изучаем с помощью Telnet. d код, который сделает это надежно - другой рассказ. Код в классе , который следует не мой исходный код - я мощеный вместе с трех различных источников выборки, фиксируя пространств имен, обработка ошибок, и другие мелких предметов, изменения консольного кода кода библиотеки классов, и предоставление завершающего тестового жгута на основе Winforms, который иллюстрирует его правильное использование .

Я также включил образец кода , чтобы правильно обработать и добавить письмо в приложение OpenFileDialog. Этот код MIME кодирует и передает вложение (-и) в соответствии со спецификацией .

+2

Это все еще зависит от наличия SMTP-сервера на другом конце; Я не уверен, какую выгоду вы не используете SmtpClient и MailMessage ... –

+2

Ehm, всегда есть SMTP-сервер с другой стороны. В этом примере показано, что вы отправляете почту с использованием протокола SMTP явно в свой код. – splattne

+0

@splattne: Хорошо ... Думаю, было бы интересно/интересно реализовать протокол самостоятельно;] –