リンク付きの小さなhtmlドキュメントを生成し、xp_smtp_sendmailprocを介して送信するprocがあります。リンクはクエリ結果に基づいて生成され、長いです。これはほとんどの場合機能します。ただし、クエリ文字列変数名にスペースが挿入されているためにリンクが壊れることがあります。つまり、&Na me=Johnです。
これはメールクライアントによって異なる場合があります(同じリンクはGmailで機能しますが、スペースが原因でcomcastでは機能しない場合があります。スペースはランダムに挿入されているようです。そのため、壊れたメールリンクスペースごとに他のクエリ文字列変数が壊れている可能性があります。procからPRINTを実行するとリンクはクリーンで、スペースはありません。
これは、メインプロシージャ内で実行されているメールプロシージャのサンプルです(クエリ結果を取得し、@ Messageのhtmlを生成します)。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'