Как отправить сообщение электронной почты с помощью Microsoft Exchange Server с Sql Server 2005/2008? - PullRequest
1 голос
/ 02 сентября 2010

Я знаю, как отправлять почту, используя SMTP-сервер, указанный в профилировщике почты в базе данных Mail сервера Sql.

Вы бы сделали это так:

EXEC msdb.dbo.sp_send_dbmail  @profile_name = 'profile',
                              @recipients = @email,
                              @body = @body,
                              @body_format = 'HTML',
                              @subject = @subject

Но я не знаю, как отправлять почту с помощью Microsoft Exchange.

Обновление 1. Я считаю, что основная проблема, связанная с тем, что я не могу отправлять почту через Exchange, заключается в том, что он использует аутентификацию на основе NTLM. И я совершенно точно не хочу, чтобы мой Sql Server работал с использованием учетных данных пользователя моего домена.

Обновление 2. Спасибо вам за ваши предложения. Вот подвох. Я не имею никакого контроля над рассматриваемым корпоративным сервером Exchange. Таким образом, единственным способом действий будет попытка выдать себя за меня на конечной точке Exchange. К счастью, я могу общаться с Exchange через telnet ip-of-the-exchange-сервер 25.

Ответы [ 2 ]

1 голос
/ 02 сентября 2010
  • Используйте IP-адрес сервера Exchange в качестве сервера STMP в SQL Server и
  • настройте соединитель SMTP сервера Exchange, чтобы разрешить ретрансляцию для IP-адреса вашего сервера SQL.

Перейдите по ссылке для получения инструкций по , как это сделать с Exchange Server 2003 и 2007 .

Относительно вашего обновления : если вы делаете это, как описано выше (разрешите ретрансляцию)вам не нужны никакие учетные данные.Каждому процессу на компьютере вашего SQL Server будет разрешено отправлять почту через ваш Exchange Server без какой-либо авторизации.

Вот несколько общих советов по отладке SMTP-соединения.Чтобы протестировать эту конфигурацию, вы можете открыть командную строку на вашем SQL Server и использовать telnet для создания сеанса SMTP (вы должны ввести строки, которые не начинаются с цифры):

C:\>telnet ip-of-your-exchange-server 25
220 your.domain Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at  Thu, 2 Sep 2010 16:19:33 +0200
EHLO heinzi
250-your.domain Hello [192.168.3.1]
250-TURN
[...]
250-XEXCH50
250 OK
MAIL FROM:<your@email.address>
250 2.1.0 your@email.address....Sender OK
RCPT TO:<some.other.address@outside.your.domain>

После последней строки вы получите один из двух ответов.Это означает, что все в порядке:

250 2.1.5 some.other.address@outside.your.domain

Этот (или аналогичный) означает, что вы по-прежнему неправильно настроили сервер Exchange:

554 5.7.1 <some.other.address@outside.your.domain>: Relay access denied
1 голос
/ 02 сентября 2010

Exchange - это просто еще один SMTP-сервер.Вы указываете свой профиль на специфику вашего сервера, и все готово.Я делаю это каждый день в моей среде.SMTP по какой-то причине отключен на вашем экземпляре Exchange?

...