簡體   English   中英

使用sp_send_dbmail時是否可以在HTML電子郵件中使用sql變量?

[英]Is it possible to use sql variables in HTML email when using sp_send_dbmail?

我正在使用HTML格式在MSSQL Server 2012上使用sp_send_dbmail發送電子郵件。

但是,這很完美,我希望能夠在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@domain.com',
@blind_copy_recipients = 'email@domain.com',
@subject = 'email subject'
@body = @email_body2,
@body_format = 'HTML',
@profile_name = 'HTML EMAIL';

難道我做錯了什么? 還是有一種輕松的方式來實現我所需要的?

我認為您缺少+,應該是這樣的

您好'+ @variable +'.......其余內容。

SET @email_body1 = "Hello <Customer>, Rest of body"

然后

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

其中@CustomerName是帶有客戶名稱的NVARCHAR變量

注意標簽應該是唯一的,例如

替代解決方案(如另一個答案中所述)-只需使用“ +”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM