none
sendmail и список - непонятно RRS feed

  • Вопрос

  • Привет всем :)

    Интересно как-то стало написать процедуру, которая получает

    А) входные параметры

    В) затем формирует из них строку

    С) Отправляет эту строку на email пользователя

    Это понятно, но вот не понятно как четко сформировать строку так, чтобы она хорошо читалась уже в виде письма.  Вот отправить например эту строку

    declare @letter varchar(255)

    set @letter='- Test Letter- '+'Name : ' + @name + 'last_name : '+@last_name+ 'city : '+@city+'address : '+@address+'telephone : '+@telephone;

    как сделать так, чтобы в письме эта строка была представлена в виде списка. Думал ставить \n или что-то такое в конце каждого элемента, но не уверен - t-sql все-таки :). Может нужно двигаться в другом направлении? Подскажите плз

    Заранее благодарен за полезные комментарии

     

    • Перемещено SachinW 2 октября 2010 г. 0:12 MSDN Forums Consolidation (От:SQL Server для разработчиков)
    9 сентября 2010 г. 18:49

Ответы

  • Для таблицы можно вспомнить про html в коде письма. Вот кусок кода, который заворачивает в <table> выборку из таблицы по какому-то условию. Ваш вариант ещё проще.

    declare @body nvarchar(max)
    set @body 
     = N'Hello world!<br><br>'
    	+ N'<table border=1 cellspacing=0 cellpadding=3>'
    	+ N'<tr> <th>No</th> <th>Name</th> </tr>'
    	+ convert(nvarchar(max), 
    		(
    			select td = s.No
    				, '', td = s.Name
    			from Staff s
    			where s.Name like '%Кузнецов%'
    			order by s.Name
    			for xml path('tr'), type
    		))
    	+ N'</table><hr><p>';

    • Помечено в качестве ответа I.Vorontsov 21 сентября 2010 г. 5:53
    18 сентября 2010 г. 21:14

Все ответы

  • Что-то типо этого опробуйте:

    set @letter='- Test Letter- '+'Name : ' + @name + CHAR(13) + CHAR(10) + 'last_name : '+@last_name+ CHAR(13) + CHAR(10) + 'city : '+@city+ CHAR(13) + CHAR(10)+ 'address : '+@address + CHAR(13) + CHAR(10) +'telephone : '+@telephone;

    13 и 10 это аналоги символов CR LF ... можно просто попробовать 10 символ вставлять.

    CHAR - функция, котора я по номеру ASCII преобразует в символ.

    • Предложено в качестве ответа Yury Iwtschenko 10 сентября 2010 г. 20:57
    • Помечено в качестве ответа I.Vorontsov 15 сентября 2010 г. 10:07
    • Снята пометка об ответе andrewmorozov 17 сентября 2010 г. 19:07
    10 сентября 2010 г. 6:10
  • А если нужно, чтобы данные передавались в виде таблицы ?
    17 сентября 2010 г. 19:07
  • Для таблицы можно вспомнить про html в коде письма. Вот кусок кода, который заворачивает в <table> выборку из таблицы по какому-то условию. Ваш вариант ещё проще.

    declare @body nvarchar(max)
    set @body 
     = N'Hello world!<br><br>'
    	+ N'<table border=1 cellspacing=0 cellpadding=3>'
    	+ N'<tr> <th>No</th> <th>Name</th> </tr>'
    	+ convert(nvarchar(max), 
    		(
    			select td = s.No
    				, '', td = s.Name
    			from Staff s
    			where s.Name like '%Кузнецов%'
    			order by s.Name
    			for xml path('tr'), type
    		))
    	+ N'</table><hr><p>';

    • Помечено в качестве ответа I.Vorontsov 21 сентября 2010 г. 5:53
    18 сентября 2010 г. 21:14

  • Для таблицы можно вспомнить про html в коде письма. Вот кусок кода, который заворачивает в <table> выборку из таблицы по какому-то условию. Ваш вариант ещё проще.

     

    declare @body nvarchar(max)
    set @body 
     = N'Hello world!<br><br>'
    	+ N'<table border=1 cellspacing=0 cellpadding=3>'
    	+ N'<tr> <th>No</th> <th>Name</th> </tr>'
    	+ convert(nvarchar(max), 
    		(
    			select td = s.No
    				, '', td = s.Name
    			from Staff s
    			where s.Name like '%Кузнецов%'
    			order by s.Name
    			for xml path('tr'), type
    		))
    	+ N'</table><hr><p>';

     

    Спасибо - интересно :)

    А в таком случае сам html будет виден при получении сообщения?

    21 сентября 2010 г. 3:08
  • Будет. Мы прямо так и отсылаем, судя по всему. Но, естественно, это от клиента почтового может зависеть. Для пущей уверенности можно сделать html более правильным, приписав в начале и конце соответствующих тегов.
    21 сентября 2010 г. 6:49