У меня есть процесс, в котором я создаю небольшой HTML-документ со ссылкой и отправляю его через процесс xp_smtp_sendmail. Ссылка генерируется на основе результатов запроса и является длинной. Это работает в большинстве случаев. Однако иногда ссылка прерывается из-за вставки пробелов в имена переменных строки запроса, т.е. & Na me = John.
Это может варьироваться в зависимости от почтовых клиентов (одна и та же ссылка работает в Gmail, но может не работать в comcast из-за пробелов. Кажется, что пробел вставлен случайным образом, поэтому в каждом неработающем почтовом пространстве ссылки могут нарушать другие переменные строки запроса. PRINT from proc ссылка чистая, пробелов нет.
Вот мой пример почтового процесса, выполняемого в основном процессе (который получает результаты запроса и генерирует HTML для @Message). Кажется, пробел вставляется независимо от того, кодирую я URL или нет.
Заранее благодарю за помощь. Я могу отправить более чистую версию кода, если она не отображается должным образом.
.... результаты запроса выше
SET @Message = NULL
SET @Message = @Message +
+ '<br/>Dear ' + @FirstName + ' ' + @LastName + ','
+ '<br/><br/>Recently you took "' + @Title + '". '
+ 'In response to the question "What is it?" '
+ 'you responded "' + @Response + '".'
+ '<br/><br/>Following up on previous mailing'
+ '<br/><br/>Please click on the link below'
+ '<br/><br/><a href="' + @Link + '">Please click here</a>'
+ '<br/><br/>plain text'
+ '<br/><br/>plain text,'
+ '<br/><br/>plain text<br/>
plain text<br/>
plain text<br/>
plain text<br/>
plain text<br/>
plain text
EXEC @rc = master.dbo.xp_smtp_sendmail
@FROM = 'any@any.com',
@FROM_NAME = 'Any User',
@TO = @Email,
@priority = N'NORMAL',
@subject = N'My email',
@message = @Message,
@messagefile = N'',
@type = N'text/html',
@attachment = N'',
@attachments = N'',
@codepage = 0,
@server = 'smtp.server.any'