Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
To Glory (Mail&SQLServer)
|
|||
|---|---|---|---|
|
#18+
На 11стр. форума был вопр.по Mail&SQLServer. Спасибо за совет. Между основной работой сделал. Т.е. создал копию sp_processmail и задал в ней параметры. Работает. Подскажи пожалуйста как теперь к этому запросу (кот. отсылается из приложения)прицепить параметр @recipients, чтобы сервер при обработке запроса из почт. ящика, поместил этот параметр в мою процедуру, если это возможно. Заранее благодарен за ответ. Так же и от любого участника форума, кто что-либо знает по данному вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 10:33 |
|
||
|
To Glory (Mail&SQLServer)
|
|||
|---|---|---|---|
|
#18+
Что-то я не допонимаю Ваше клиентское приложение(если не секрет какое) формирует почтовое сообщение и отсылает его SQL серверу, где оно обрабатыватся с помощью модифицированной вами же sp_processmail ? В процессе обработки выясняется что параметер @recipients этого почтового сообщения пустой (или какой ?) ? Но ведь @recipients - это получатель почты, если он пуст как вообще сообщение дошло до сервера ? Если вас не затруднит, опишите пожалуйста поподробнее последовательность ваших шагов - где и чем вы формируете почтовое сообщение, что используете для его отправки и как хотите что бы оно обрабатывалось SQL сервером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 12:58 |
|
||
|
To Glory (Mail&SQLServer)
|
|||
|---|---|---|---|
|
#18+
Собственно клиентское приложение пока не расчитано на подобную работу и ведутся просто подготовительные исследования поэтому цепочка следующая: Работаю в локальной сети. Есть почтовый сервер, на нем почтовый ящик мой (АБД) и почт. ящик SQLServer. Со своего комп., с помощью Outlook Express, отсылаю простецкий select*from <имя таблицы> на почтовый ящик SQLServer (находящийся на почтовом сервере). Каждые 3мин. SQLServer просматривает сообщения в своем почт. ящике (на почт. сервере) и забирает сообщения с пометкой (те кот. предназначены для обработки). На SQLServer сообщения обрабатываются пользовательской хранимой процедурой (кот. заводится автоматически с помощью SQL Server Agent) в кот. я жестко забил наименование БД (параметр @dbuse и получатель @recipients т.е. почтовый ящик АБД на почт. сервере). Т.о. отправляю на адрес сервера, ответ получаю в свой почт. ящик и просматриваю в своем Outlook Express. В этом случае все норм. работает. Задача в том, что если пользователи будут отправлять подобные сообщения из разных районов города (с разных клиентских приложений), то параметр @recipients должен формироваться автоматически в теле моей пользовательской процедуры для каждого обратившегося клиента. Для примера: если используется XP_SENDMAIL, то этот параметр (@recipients) задается сразу при вызове процедуры, типа: EXEC XP_SENDMAIL @recipients=' ' и.т. д . Можно было бы так же для каждого клиента задать в запросе этот параметр жестко, но в SP_PROCESSMAIL при старте не задается данный параметр, а XP_SENDMAIL встроена в SP_PROCESSMAIL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 04:56 |
|
||
|
To Glory (Mail&SQLServer)
|
|||
|---|---|---|---|
|
#18+
Теперь понятно. 1. Можно в вашей процедуры использовать xp_readmail и считывать пареметер @originator - это и будет ваш @recipients. Обратите внимание на параметр @peek, можно установить его в 'TRUE' и добиться такого эффекта, что как будто бы это почтовое сообщение и не было обработано - если это конечно нужно. 2.А если взять оригинальную SP_PROCESSMAIL, сделать с нее копию, модифицировать ее по своему усмотрению(включая количество и тип параметров) и использовать ее ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 07:35 |
|
||
|
To Glory (Mail&SQLServer)
|
|||
|---|---|---|---|
|
#18+
>2.А если взять оригинальную SP_PROCESSMAIL, сделать с нее копию, модифицировать ее по >своему усмотрению(включая количество и тип параметров) и использовать ее ? Собственно это и сделал. Проблема в том что: адрес почтового ящика клиента д.быть указан в запросе. Т.е. моя процедура (напр. ZSP_PROCMAIL - копия процедуры SP_PROCESSMAIL) должна при старте как то этот адрес принять (вместе с обработкой "селекта"). В xp_readmail данный параметр можно прописать при старте процедуры. В sp_processmail данный параметр не пропишешь т.к. там 4 входных параметра(@subject,@filetype,@set_user,@dbuse). А хp_readmail встроена в sp_processmail и соответственно в мою копию. Т.е. чтобы было понятней, запрос должен выглядеть примерно: DECLARE .................. select name from <имя табл.> т.к. раньше он выглядел просто: select name from <имя табл.> Прошу не надрывать животы над синтаксисом, это просто прикид. В общем пользовательское приложение должно отправить адрес своего почтового ящика вместе с "селектом", а моя процедура должна принять этот адрес как входной параметр. А как это нарисовать в запросе я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 08:58 |
|
||
|
To Glory (Mail&SQLServer)
|
|||
|---|---|---|---|
|
#18+
Т.е. приложение присылает запрос со своего адреса, а результат запроса должен отправляться на другой адрес. Так что вам все-таки мешает добавить в процедуре ZSP_PROCMAIL между строками exec @status = master.dbo.xp_readmail ....@message = @query и exec @status = master.dbo.xp_sendmail ....@recipients =@originator, ..., @query = @query свою обработку переменной @query и прочитать из нее все, что вам нужно (скажем в почтовом сообщении первая строка - это адрес получателя, если пусто, то это отправитель письма, все остальное - это запрос или какая-нибудь комбинация симвмолов указывает, что все далее идет адрес получателя) и эту информацию присвоить в переменные, которые использует xp_sendmail (т.е. @originator и @query). Ведь текст почтового сообщения будет формировать ваше же клиентское приложение, ну так пусть оно его и формирует по заданному стандарту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 09:48 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32006891&tid=1826595]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 377ms |

| 0 / 0 |
