2016-08-10 14 views
0

HTML形式を使用しているMSSQLサーバー2012でsp_send_dbmailを使用して電子メールを送信しています。sp_send_dbmailを使用する場合、HTML電子メールでsql変数を使用できますか?

しかしこれは完全に機能しますが、HTMLの電子メール本文にSQL変数を挿入できるようにしたいと考えています。例えば、私はコードが以下のように見えることを期待していますが、何らかの未知の理由により、変数を挿入するとHTMLコードが壊れているようです。変数が挿入されると、HTMLタグがすべて自動的に閉じられるため、これが起こっていると思われます。

DECLARE @email_body1 NVARCHAR(max); 
DECLARE @email_body2 NVARCHAR(max); 
DECLARE @fundraising_link NVARCHAR(max); 
DECLARE @firstname NVARCHAR(max); 
DECLARE @email_leadid INT; 
DECLARE @send_email CHAR(5); 
DECLARE @email_address NVARCHAR(max); 
DECLARE @segment NVARCHAR(max); 
DECLARE @variable VARCHAR(max); 
SET @variable = '''Paul'''; 
SET @email_body1 = 

' 

<!DOCTYPE html><html><head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<meta name="viewport" content="width=device-width"> 
</head> 
<body> 
Hello ' + @variable + ' ....... REST OF BODY CONTENT. 
</body></html> 

'; 

SET @email_body2 = @email_body1 

EXEC msdb.dbo.sp_send_dbmail 
@recipients = '[email protected]', 
@blind_copy_recipients = '[email protected]', 
@subject = 'email subject' 
@body = @email_body2, 
@body_format = 'HTML', 
@profile_name = 'HTML EMAIL'; 

私は何か間違っていますか?または、私が必要とするものを達成するための簡単な方法がありますか?

+0

正しく連結していません。あなたは '' Hello '+ @variable +' ..... ''をやっていなければなりません。また、 '@ subject'値の引用符を閉じる必要があります。 – Nicarus

+0

おっと...私はこれを修正しましたが、問題は解決しません。 – mrgunston

+0

エラーが発生しましたか?もしそうなら、メッセージは何ですか? - または送信していますが、配信されたメールにHTMLが正しく構成されていませんか? – Nicarus

答えて

-1
そして
SET @email_body1 = "Hello <Customer>, Rest of body" 

@CustomerNameタグは、例えば、一意である必要があることを顧客名でNVARCHAR変数

注ある

SET @email_body1 = REPLACE(@email_body1, '<Customer>', @CustomerName) 

代替ソリューション(別の回答に記載されています) - ちょうど "+"を使用してください。

+0

本文メッセージは、開発チームではなく、コンテンツチームによって作成される場合があります。 + REPLACEタグを使うと、devは各変数の代わりに何を入れるべきかを知っています。テンプレートが "Hello s、%sと%sへようこそ"のように見える場合は、%sを%sにプロモートしたいのですが、読みにくいかもしれません。とにかく...同じまたは類似の効率を持つさまざまな方法で多くの問題を解決できます。代わりのソリューションを提供しました。私の経験から、 "tags + replace"はうまく動作します。 – Anton

+0

あなたは間違っています。 REPLACE - 指定された文字列値のすべての出現を別の文字列値に置き換えます。 https://msdn.microsoft.com/en-au/library/ms186862.aspx – Anton

+0

Nicarus、コメントを追加した後、メッセージを削除して編集したのはなぜですか?それは、いけてないねえ。 – Anton

0

私はこの

こんにちはBODYコンテンツの '+ @variable +' ....... RESTのようなものでなければなりません、あなたは+が欠けていると思います。

+0

おっと...私はこれを修正しましたが、問題は解決しません。 – mrgunston

関連する問題