Newsletter Management Using PHP w/o mySQL for Beginners

Let's begin by setting some limits. If you're like me, you like to keep it simple. All we're doing is collecting email addresses together for our mailing list, so biochemical engineering is out the window. If you're using Thunderbird (or that MS product), you can send nicely formatted newsletters out and retain all of the other awesome features of your email program so there's really no need for databases, logins, or pretty much anything else. We're going to stay far away from anything non-essential.

To keep it simple, I'll assume you have Dreamweaver or a comparable WYSIWYG composer; however, if you are editing source code you can click here to see an expanded version of this article with source code. Also, I've assumed that you have an extremely basic familiarity with PHP. If not, please begin by reading this PHP introduction (for absolute beginners).

There are only 3 steps we're going to need:

  • Put HTML on the page to collect the user's name and email address.
  • Add in a little PHP and (possibly) change a filename.
  • Receive and process the emails.
  • Marching on, we need to put some HTML on our page to let the visitor enter in their name and email address. To do this using Dreamweaver, you'll need to create a form with the POST method, a text input named visitor_name, a text input named visitor_email, and a submit button.

    We now have our excellent mailing list form up and you should check to make sure that it ended up where you planned. At this point, you may need to make another slight change. If the file's extension is not php, php3, php4, or phtml you should change the file's extension to php. Now, you will need to be careful here as file extensions are extremely important, so you may lose functionality when you change the file's extension. If this is the case, look up the extension and find a tutorial for the language.

    Take a breather and get ready for step 2. Since this is a PHP tutorial, we're going to take a closer look at the PHP code used to send us the email. Being a language, we'll need to learn enough of the PHP vernacular to 1) use the information the user submitted, 2) create the body of the email, and 3) send the email.

    The form we created sends 2 pieces of information: visitor_name and visitor_email. When PHP receives them it realizes that someone POSTed some information and to make it easy for you to get ahold of it creates a couple of special "things" you can use to refer to what the user entered: $_POST['visitor_name'] and $_POST['visitor_email']. Why does it call them by funny names? Well the $_POST part assures you that it was information that was submitted by your visitor and not some other PHP somewhere on your page. The part in quotes allows you to pick which piece of information was submitted by your visitor (don't stress on the brackets - they just separate the two pieces of information).

    Great! We now have our visitor's information, so let's send it to ourselves. Sending email in PHP almost seems too easy. We just need to modify this line mail(TO, SUBJECT, MESSAGE); by replacing each of the bold capitalized words and adding this inside of PHP tags to our page. Replace TO with your email address in quotes. Replace SUBJECT with the subject you want to appear on the email inside of quotes. In an effort to keep it simple, replace MESSAGE with "{$_POST['visitor_name']} at {$_POST['visitor_email']} would like to subscribe to your mailing list." By now, the MESSAGE replacement is probably self-explanatory except for the curly braces. The curly braces just reassure PHP that the information inside of them really does refer to something it should already know (in this case what our visitor submitted).

    Now we just need to include our modified line in the HTML page. Here's the whole modified line (don't forget the PHP tags!):

    mail("MY EMAIL ADDRESS","Newsletter Subscription","{$_POST['visitor_name']} at {$_POST['visitor_email']} would like to subscribe to your mailing list.");

    If you're a really observant reader, you're already wondering how PHP knows to wait until someone's submitted a subscription request. Well, in the example above, it doesn't. It's also missing some kind of message to inform your subscriber that their request was successful. Since this is introductory material and already lengthy, I'll save that explanation for another article. Just follow everything you've learned above and use this line of code instead (I've bolded my special addition), substituting the success message for one of your own:

    if (isset($_POST['visitor_email'])) { mail("MY EMAIL ADDRESS","Newsletter Subscription","{$_POST['visitor_name']} at {$_POST['visitor_email']} would like to subscribe to your mailing list."); echo "Subscription Complete. Thank you!"; }

    Er, that's all folks! You'll start receiving emails which you can then add to a mail list in Thunderbird. To manage unsubscription requests, just have a little note at the end of your mailing list saying to reply to the email to be removed and then edit your mailing list.

    Jeremy Miller - Webmaster of Script Reference - The *NEW* PHP Reference & Tutorial Site For Non-Programmers

    In The News:

    The impact of web design on your business  Business MattersBusiness Matters
    What Skills Are Indians Learning For 2021
    What to Look for in an Indiana Web Developer  WhaTech Technology and Markets News
    UKtech50: The 2021 longlist
    How to become web developer, land a job  The New Indian Express

    How To Keep Your Website Sticky

    Developing a website with content that entices visitors to return... Read More

    A Beginners Guide to Server Side Includes

    An Introduction to Server Side IncludesBeginner? That's OK!While much has... Read More

    Web Design for the Professional Magician Part I - Selecting the Perfect Domain Name

    Selecting the Perfect Domain NameThe first issue I have with... Read More

    Setting Up Your First Website

    Q. Hey, Cathy: I'm just setting up a website. What... Read More

    3 Rules of Website Designing and Layout

    Now that you have got your domain name registered, your... Read More

    Guidelines for Web Page Optimization

    Below, I have listed 8 simple steps that you can... Read More

    Are You Overlooking the Benefits of Using Sub-Domains within Your Web-hosting account?

    One of the most useful features offered by some web... Read More

    UK Online Shopping with an Edge, for Buyers and Sellers Alike

    Any new website competing on the internet, needs to take... Read More

    Is Your Web Site Talking to Your Customer?

    A while ago one of my clients approached me and... Read More

    Instant Relevant Web Site Content - No Its Not a Bot

    In about the Time it takes to Watch a Reality... Read More

    In Business? 10 Reasons Why You Need a Website -- Now!

    1) Word of Mouth The single most powerful form of... Read More

    Making Your Website Shine! Attract and Keep Visitors at Your Site!

    When you consider the billions of individuals and companies on... Read More

    Ten Ways NOT to Set Up a Website-based Service Business

    1. As the first step, "Hire a web designer."First create... Read More

    The Problem with Automated Accessibility Testing Tools

    An automated accessibility tool is a piece of software which... Read More

    Top 5 Reasons to Track Your Website Traffic

    #5 User Satisfaction: Learn what your visitors and site users... Read More

    Creating Compelling Content , Write It and They Will Come

    In a previous article,"I Need real visitors, Not Search... Read More

    Web Sites ? Should I Learn or not?

    A common dilemma most small and medium businesses face when... Read More

    Pick Up Your Own Domain Name

    Think up a name and check if is available.... Read More

    The Number One Reason Most Websites Fail

    Failure, just like success, is measured differently by each and... Read More

    But My Business Doesnt Need A Website!

    Revenues are often lost because many business owners don't see... Read More

    Get a Website!, Register Your Domain!: To Website or Not to Website?

    If you're fairly new to the Internet scene, you may... Read More

    Things to Consider Before Starting a Website

    In the time that I have been using the Internet,... Read More

    Building a Great Intranet Taxonomy

    While it may seem like a "quick and easy" task,... Read More

    Creating Dynamic Website Content with PHP - MySQL

    Fresh website content for your visitors can be of real... Read More

    How To Convert More Sales On Your Website

    One of the biggest mistakes that most online retailers make... Read More