Library tutorials & articles
Creating a Newsletter system
- Introduction
- Registration
- Sending the newsletter
Registration
Here's the code for the Subscribe and Unsubscribe Page.
Subscribe.cfm
<CFIF IsDefined("Email")>
<!--- Insert Member Information Into Database --->
<CFINSERT DATASOURCE="YourDSN" TABLENAME="Newsletter"
Formfields="Name, Email, Subscribe, EmailType">
<CFOUTPUT>
Thank you #Name#,
Your email address [#Email#] Has been entered into our mailing list. You'll receive
the next mailing!
</CFOUTPUT>
<CFELSE>
<!--- Prompt User To Enter information --->
<form action="Subscribe.cfm" method="post">
Name: <input type="Text" Value="" Name="Name"><BR>
Email: <input type="Text" Value="" Name="Email"><BR>
Receive in: Text <input type="Radio" name="EmailType"
value="1"> HTML <input type="Radio" name="EmailType"
value="0">
<input type="Submit" Value="Join Newsletter">
</FORM>
</CFIF>
The unsubscribe page:
unsubscribe.cfm<CFIF IsDefined("Email")>
<CFQUERY DATASOURCE="YourDSN" NAME="Unsubscribe">
DELETE *
From Newsletter
Where Email = '#Email#'
</CFQUERY>
<CFOUTPUT>
<CFIF Unsubscribe.recordcount GTE "1">
Thank you #Name#,
Your email address [#Email#] Has been removed from our mailing list. You'll never
receive mailing again!
<CFELSE>
We're sorry, your email address could not be found! <a href="Javascript:history.go(-1)">try
again</a>?
</CFIF>
</CFOUTPUT>
<CFELSE>
<form action="unsubscribe.cfm" method="post">
Name: <input type="Text" Value="" Name="Name"><BR>
Email: <input type="Text" Value="" Name="Email"><BR>
<input type="Submit" Value="Join">
</FORM>
</CFIF>
Try using 'GTE' as opposed to 'GTI'.
Its supposed to mean Greater Than or Equal to.
Hi, could anyone help me with this? Im getting an error on the unsubscribe page to do with the GTI line. Its pretty new to me and im not even sure what this line means!!!
Element RECORDCOUNT is undefined in UNSUBSCRIBE.
I tried it with and without the"" but still get the same error???
Anyone willing to help out?
Thanks Pete
I'm new to the web scene but need this script to work. Please let me know how I put it in. Is it in the body. Are they seperate pages?
Can you make this dummy proof for a beginner like me.
Thanks
Please e-mail me asap if you can
Hi i am new in creating newsletters and i would like to ask you.This code you submit enters in the <BODY></BODY> section.I tried to put it there but in the PREVIEW i see nothiing but plain text.
Please explain where this code should be put.
Thank you in advance.
P.S Should i create an html page with plain text forms to enter the code behind???
If you have notice, the sample code here does not have a field 'message' in the database. Maybe you can add in the field for 'message', or you can have a form before that to input all the email message, and then change the 'GETMEMBERS.message' to 'form.message' ... hope this help.
Great job~!
I tried change a bit on the code, thought you maybe interested:
<CFIF Form.EmailType EQ "1">
<CFSET mailType = "HTML">
<CFELSE>
<CFSET mailType = "Text">
</CFIF>
<CFQUERY NAME="GetMembers" DATASOURCE="Your DSN">
Select *
From Newsletter
WHERE EmailType = #form.EmailType#
Order By MemberID
</CFQUERY>
<!--- Determine if email going out will be in HTML format or not --->
<CFMAIL To="#GetMembers.Email#"
From="newsletter@menofvisionent.com"
Subject="This Week's Newsletter!"
Type="#mailType#">
GetMembers.Message
Sent: #DateFormat(Now(), 'ddd. mmmm dd, yyyy')#
to Unsubcribe visit: http://www.menofvisionent.com/unsubscribe.cfm
</CFMAIL>
I'm getting this error when I try to input text for the "Message" form field... anyone know why it's doing this?
Error resolving parameter GETMEMBERS.MESSAGE
The column MESSAGE is not present in the query named GETMEMBERS. It is likely that you have misspelled the name of the column.
The error occurred while processing an element with a general identifier of (#GetMembers.Message#), occupying document position (41:1) to (41:20).
This thread is for discussions of Creating a Newsletter system.