Comment puis-je envoyer du texte brut e-mail (avec des sauts de ligne) à l'aide de sp_send_dbmail?
J'ai un Serveur SQL server 2008 procédure qui envoie des mails via sp_send_dbmail.
Je suis en utilisant le code suivant:
set @bodyText = ( select
N'Here is one line of text ' +
N'It would be nice to have this on a 2nd line ' +
N'Below is some data: ' +
N' ' +
N' ' +
field1 +
N' ' +
field2 +
N' ' +
N'This is the last line'
from myTable )
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'myProfile',
@recipients = @to,
@body = @bodyText,
@body_format = 'TEXT',
@subject = 'Testing Email' ;
Mon mon profil est configuré pour utiliser le serveur smtp local, ce qui résulte en une .Fichier EML dans c:\inetpub\mailroot\queue
Quand j'ouvre l'un de ceux-ci .les fichiers eml (ug - la seule chose qui peut les ouvrir est outlook express, en les regardant dans autre chose juste montre le corps comme un encodées en base64 blob.) on dirait que c'est rendu le résultat en HTML donc je ne sais pas si le problème est au niveau du client, ou
J'ai essayé de les mettre \n dans le message, mais cela ne fonctionne pas. Comment puis-je envoyer du texte brut avec des sauts de ligne et de vérifier que le résultat final semble correct?
BTW, je ne peux pas envoyer l'e-mail de le tester avec de vrais clients de messagerie - corp. le réseau est verrouillé.
- avez-vous eu des réponses de résoudre votre problème?
- oui. Je suis en train de décider lequel d'accepter - le vôtre est plus élégant, et se lit mieux, mais Martins travaille aussi.
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas réellement d'insérer des sauts de ligne. Vous pouvez les intégrer directement dans une chaîne littérale dans SQL Server en tant que ci-dessous.
Ou un plus propre approche pourrait être
Deux va déclencher une erreur si
myTable
contient plus d'une ligne que vous attribuer le résultat à une variable scalaire.CHAR(13)+CHAR(10)
fonctionne mieux avec la mise en retrait des requêtes et autres code.'
doit aller droit au début de la ligne pour éviter d'injecter une charge entière de l'excédent des espaces mais il peut ressembler un peu plus WYSIWYG où ce n'est pas un sujet de préoccupation.J'ai toujours utilisé des
CHAR(13)+CHAR(10)
pour créer des sauts de ligne (qui semble fonctionner mélangé avec les valeurs de type nvarchar) en TSQL, alors essayez quelque chose comme ceci:De SORTIE:
ce
CHAR(13)+CHAR(10)
travaillera avecmsdb.dbo.sp_send_dbmail
, j'envoie formaté e-mails à l'aide de tous les temps.La fin de la partie, mais comme Fernando68 mentionne ci-dessus, si vous êtes autorisé les e-mails html, set @bodyFormat = 'HTML', alors vous pouvez utiliser
<br/>
pour les sauts de lignes et de le rendre aussi chic que vous souhaitez à l'aide de toutes les balises que vous obtenez à partir de code HTML comme des sauts de lignes, img, forte et ainsi de suite...