|
 |
 |
 |
 |
Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved. Terms
of Use |
Trademarks
Article ID: 889879 - Last Review: August 23, 2005 - Revision: 1.2 ASP.NET code samples that generate personalized e-mail content for Commerce Server 2002 ASP.NET site registered usersThis article contains Microsoft ASP.NET code samples in Microsoft Visual Basic .NET and in Microsoft Visual C#. These ASP.NET code samples generate personalized e-mail content for Microsoft Commerce Server 2002 ASP.NET site registered users. This article contains ASP.NET code samples that generate personalized e-mail content for Commerce Server 2002 ASP.NET site registered users. The TestEmail.aspx file and the TestEmail.aspx.vb file make up the code sample in Visual Basic .NET. Use this code sample for Commerce Server 2002 solution sites that use Visual Basic .NET. The MSIBEmail.aspx file and the MSIBEmail.aspx.cs file make up the code sample in Visual C#. Use this code sample for Commerce Server 2002 solution sites that use Visual C#. Instructions for how to use these code samples in Commerce Server 2002 solution sites are in the "More Information" section. These code samples are provided as-is. You must modify these code samples for custom Commerce Server 2002 ASP.NET sites. Code sample in Visual Basic .NETThe following code sample is the TestEmail.aspx file. <%@ Page Language="vb" AutoEventWireup="false" Codebehind="TestEmail.aspx.vb" Inherits="Microsoft.CommerceServer.Site.TestEmail"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>TestEmail</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie3-2nav3-0" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="FlowLayout">
<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #ffff99; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt"
cellSpacing="0" cellPadding="0" bgColor="#ffff99" border="1">
<tr>
<td width="655" valign="top">
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">
From: E-mail Notifier<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">Sent:
<asp:Label id="lblSentDate" runat="server">Sent Date Label</asp:Label><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">To:
<asp:Label id="lblName" runat="server">First Name Last Name</asp:Label><o:p></o:p><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">Subject: </span><b><span style="FONT-SIZE:12pt;
COLOR:blue;
FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt">
New product notice</span></b><span style="mso-fareast-font-family:
'MS Mincho'"><o:p></o:p>
</span></p>
</td>
</tr>
</table>
<p class="MsoPlainText"><b><span style="FONT-SIZE:12pt;
COLOR:blue;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt"><![if
!supportEmptyParas]><![endif]><o:p></o:p></span></b></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">Dear
<asp:Label id="lblFName" runat="server">FirstName</asp:Label>,<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'"><span style="mso-spacerun: yes"></span>
<o:p></o:p>
</span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">
<span style="mso-spacerun: yes"></span>We have added some exciting new products to our Web
site.
<asp:Label id="lblSiteLink" runat="server">SiteLink</asp:Label>
<o:p></o:p>.<o:p></o:p></span></p>
<p class="MsoNormal" style='mso-layout-grid-align:none'><span style='FONT-SIZE:10pt;
COLOR:navy;
FONT-FAMILY:Arial'><![if !supportEmptyParas]><![endif]><o:p></o:p></span></p>
<p class="MsoNormal" style='mso-layout-grid-align:none'><span style='FONT-SIZE:10pt;
COLOR:navy;
FONT-FAMILY:Arial'><span style='mso-tab-count:
1'></span>
<o:p></o:p>
</span></p>
<p class="MsoPlainText"><span style="mso-fareast-font-family:
'MS Mincho'">__________________________________________
<o:p></o:p></span></p>
<p class="MsoPlainText"><i><span style="FONT-SIZE:8pt;
FONT-FAMILY:Verdana;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt">TO UNSUBSCRIBE: You
have received this e-mail notifier as a result of your personal
registration.<BR>To unsubscribe from this e-mail notifier, click
the link below. <o:p></o:p></span></i></p>
<p class="MsoPlainText"><i><span style="FONT-SIZE:8pt;
FONT-FAMILY:Verdana;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt">
<asp:Label id="lblOptLink" runat="server">opt-out Link</asp:Label>
<o:p></o:p>
</span></i></p>
</body>
</HTML>
The following code sample is the TestEmail.aspx.vb file. The TestEmail.aspx.vb file is the code-behind file for the TestEmail.aspx file. Imports Microsoft.CommerceServer.Runtime
Imports Microsoft.CommerceServer.Runtime.Profiles
Imports Microsoft.CommerceServer.Runtime.TicketBase
Public Class TestEmail
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents lblFName As System.Web.UI.WebControls.Label
Protected WithEvents lblSiteLink As System.Web.UI.WebControls.Label
Protected WithEvents lblSentDate As System.Web.UI.WebControls.Label
Protected WithEvents lblName As System.Web.UI.WebControls.Label
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer.
'Do not modify it by using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim FirstName As String
Dim LastName As String
Dim MyProfile As Profile
Dim SentDate As String
SentDate = Now().ToString()
CommerceContext.Current.AuthenticationInfo.SetAuthTicket(CommerceContext.Current.UserID, False)
MyProfile = CommerceContext.Current.UserProfile
If MyProfile Is Nothing Then
Response.Write("MyProfile is nothing")
Else
FirstName = (MyProfile.Properties("GeneralInfo.first_name").Value).ToString()
LastName = (MyProfile.Properties("GeneralInfo.last_name").Value).ToString()
lblSentDate.Text = SentDate
lblName.Text = FirstName + " " + LastName
lblFName.Text = FirstName
'BuildURL can add parameter/value pairs to the URL depending on what you need. Please check doc for QueryStringBuilder.
lblSiteLink.Text = "<A HREF='" + CommerceContext.Current.QueryStringBuilder.BuildUrl("default.aspx", False) + "'>Come see us today!</A>"
End If
End Sub
End ClassCode sample in Visual C#The following code sample is the MSIBEmail.aspx file. <%@ Page language="c#" Codebehind="MSIBEmail.aspx.cs" AutoEventWireup="false" Inherits="Microsoft.Solutions.Applications.MSIBEmail" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>MSIBEmail</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="FlowLayout">
<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #ffff99; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing="0" cellPadding="0" bgColor="#ffff99" border="1">
<tr>
<td width="655" valign="top">
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'"> From: E-mail Notifier<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">Sent:
<asp:Label id="lblSentDate" runat="server">Sent Date Label</asp:Label><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">To:
<asp:Label id="lblName" runat="server">First Name Last Name</asp:Label><o:p></o:p><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">Subject: </span><b><span style="FONT-SIZE:12pt;
COLOR:blue;
FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt">New product notice</span></b><span style="mso-fareast-font-family:
'MS Mincho'"><o:p></o:p>
</span>
</p>
</td>
</tr>
</table>
<p class="MsoPlainText"><b><span style="FONT-SIZE:12pt;
COLOR:blue;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt"><![if !supportEmptyParas]><![endif]><o:p></o:p></span></b></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'">Dear
<asp:Label id="lblFName" runat="server">FirstName</asp:Label>,<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'"><span style="mso-spacerun: yes"></span>
<o:p></o:p>
</span>
</p>
<p class="MsoPlainText"><span style="FONT-FAMILY:Tahoma;
mso-fareast-font-family:'MS Mincho'"> <span style="mso-spacerun: yes"></span>We have added some
exciting new products to our Web site.
<asp:Label id="lblSiteLink" runat="server">SiteLink</asp:Label>
<o:p></o:p>.<o:p></o:p></span></p>
<p class="MsoNormal" style='mso-layout-grid-align:none'><span style='FONT-SIZE:10pt;
COLOR:navy;
FONT-FAMILY:Arial'><![if !supportEmptyParas]><![endif]><o:p></o:p></span></p>
<p class="MsoNormal" style='mso-layout-grid-align:none'><span style='FONT-SIZE:10pt;
COLOR:navy;
FONT-FAMILY:Arial'><span style='mso-tab-count:
1'></span>
<o:p></o:p>
</span>
</p>
<p class="MsoPlainText"><span style="mso-fareast-font-family:
'MS Mincho'">__________________________________________
<o:p></o:p></span></p>
<p class="MsoPlainText"><i><span style="FONT-SIZE:8pt;
FONT-FAMILY:Verdana;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt">TO UNSUBSCRIBE: You have received this e-mail notifier as a result of
your personal registration.<BR>
To unsubscribe from this e-mail notifier, click the link below.
<o:p></o:p></span></i></p>
<p class="MsoPlainText"><i><span style="FONT-SIZE:8pt;
FONT-FAMILY:Verdana;
mso-fareast-font-family:'MS Mincho';
mso-bidi-font-size:10.0pt">
<asp:Label id="lblOptLink" runat="server">opt-out Link</asp:Label>
<o:p></o:p>
</span></i>
</p>
</body>
</HTML>
The following code sample is the MSIBEmail.aspx.cs file. The MSIBEmail.aspx.cs file is the code-behind file for the MSIBEmail.aspx file. using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Profiles;
namespace Microsoft.Solutions.Applications
{
/// <summary>
/// Summary description for MSIBEmail.
/// </summary>
public class MSIBEmail : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lblSentDate;
protected System.Web.UI.WebControls.Label lblName;
protected System.Web.UI.WebControls.Label lblFName;
protected System.Web.UI.WebControls.Label lblSiteLink;
protected System.Web.UI.WebControls.Label lblOptLink;
private void Page_Load(object sender, System.EventArgs e)
{
string FirstName;
string LastName;
Profile MyProfile;
string SentDate;
SentDate = DateTime.Now.ToString();
CommerceContext.Current.AuthenticationInfo.SetAuthTicket(CommerceContext.Current.UserID, false);
MyProfile = CommerceContext.Current.UserProfile;
if (MyProfile!=null)
{
FirstName = (MyProfile.Properties["GeneralInfo.first_name"].Value).ToString();
LastName = (MyProfile.Properties["GeneralInfo.last_name"].Value).ToString();
lblSentDate.Text = SentDate;
lblName.Text = FirstName + " " + LastName;
lblFName.Text = FirstName;
//BuildURL can add parameter/value pairs to the URL depending on what you need. Please check doc for QueryStringBuilder.
lblSiteLink.Text = "<A HREF='" + CommerceContext.Current.QueryStringBuilder.BuildUrl("default.aspx", false) + "'>Come see us today!</A>";
//Opt-out.asp is another page that you must work on if you need this feature.
lblOptLink.Text = "<A HREF='" + CommerceContext.Current.QueryStringBuilder.BuildUrl("opt-out.aspx", false) + "'>Click here to opt-out of future mailings.</A>";
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support. Do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
How to use these code samplesYou can use these code samples in Commerce Server 2002 solution sites to generate personalized e-mail content for Commerce Server 2002 ASP.NET site registered users. To do this, follow these steps:
- In a Commerce Server 2002 solution site that uses Visual Basic .NET, create the mail content page by using the TestEmail.aspx file and the TestEmail.aspx.vb file. In a Commerce Server 2002 solution site that uses Visual C#, create the mail content page by using the MSIBEmail.aspx file and the MSIBEmail.aspx.cs file.
- Visit the site, log on as a registered user, and then visit the mail content page to see whether the mail content page works.
- Create a list in Commerce Server 2002 Business Desk. To do this, follow these steps:
- In Campaigns, click List Manager.
- In List Manager, click the Import button.
- In the Import a List dialog box, click From SQL Database under List source.
- In the Import a List dialog box, type a name for the list. For example, type MyDirectMailList.
- In Commerce Server Manager, expand Commerce Server Manager, expand Global Resources, expand Profiles, and then copy the Profiles connection string. Then, in the Import a List dialog box, paste this connection string in the Connection string box.
- In the SQL query box, add the following sample query.
select u_email_address As rcp_email, g_user_id as rcp_guid from UserObject where i_user_type=1 Note Registered users must exist before you create this list. - Create a direct mail campaign.
Note For more information about how to create a direct mail campaign, see the "Setting up a Direct Mail Campaign" section of the Commerce Server 2002 documentation. - In the direct mail definition, in the File path or URL containing message body box, type the URL of the MailContent.aspx file. For example, type the following URL:
http://myCommerceServer/myCommerceSite/MailContent.aspx - Send test e-mail messages to the list that you created in step 3.
APPLIES TO- Microsoft Commerce Server 2002 Standard Edition
- Microsoft Commerce Server 2002 Service Pack 3
- Microsoft Commerce Server 2002 Service Pack 1
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
|
 |
 |
 |
 |
 |
 |
 |
| |