PHPMailer

Contact Us or call 1-877-932-8228
PHPMailer

PHPMailer

A very good email extension is PHPMailer, which is available for free at http://phpmailer.worxware.com. We will use PHPMailer in our examples and exercises. The following tables show some of the more common methods and properties of PHPMailer.

PHPMailer Methods
Method Description
AddAddress() Adds a "To" address.
AddAttachment() Adds an attachment from a path on the filesystem.
AddBCC() Adds a "bcc" address.
AddCC() Adds a "cc" address.
AddReplyTo() Adds a "Reply-to" address.
IsHTML() Sets message type to HTML.
IsSMTP() Sets Mailer to send message using SMTP.
Send() Creates message and assigns Mailer. If the message is not sent successfully then it returns false.
PHPMailer Properties
Property Description
AltBody Sets the text-only body of the message.
Body Sets the Body of the message. This can be either an HTML or text body.
ErrorInfo Holds the most recent mailer error message.
From Sets the From email address for the message.
FromName Sets the From name of the message.
Host Sets the SMTP hosts. All hosts must be separated by semicolons.
Password Sets SMTP password.
SMTPAuth Sets SMTP authentication. Utilizes the Username and Password properties.
Subject Sets the Subject of the message.
Username Sets SMTP username.
WordWrap Sets word wrapping on the body of the message to a given number of characters.

Note: when running any script that sends out emails, you will need a mail server and access credentials. Check with your System Administrator or with your Internet Hosting Service Provider to ge the mail server information.

Code Sample:

Email/Demos/PHPMailer.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>PHPMailer</title>
</head>
<body>
<?php
	if (!array_key_exists('Submitted',$_POST))
	{
?>
		<form method="post" action="PHPMailer.php">
		<input type="hidden" name="Submitted" value="true"><br>
		Mail Server: <input type="text" name="Host" size="25"><br>
		If authentication is required:<br>
		Username: <input type="text" name="Username" size="25"><br>
		Password: <input type="password" name="Password" size="10">
		<hr>
		To: <input type="text" name="To" size="25"><br>
		From Email: <input type="text" name="From" size="25"><br>
		From Name: <input type="text" name="FromName" size="25"><br>
		Subject: <input type="text" name="Subject" size="25"><br>
		<textarea name="Message" cols="50" rows="10"></textarea><br>
		Using HTML: <input type="checkbox" name="HTML">
		<input type="submit" value="Send Email">
		</form>
<?php
	}
	else
	{
		require("class.phpmailer.php");
		$to = $_POST['To'];
		$from = $_POST['From'];
		$fromName = $_POST['FromName'];
		$subject = $_POST['Subject'];
		$message = $_POST['Message'];
		$host = $_POST['Host'];
		
		if (array_key_exists('HTML',$_POST))
		{
			$html = true;
		}
		else
		{
			$html = false;
		}
		
		$mail = new PHPMailer();
					
		$mail->IsSMTP(); // send via SMTP
		$mail->Host = $host; //SMTP server
		
		if (strlen($_POST['Username']))
		{
			$mail->SMTPAuth=true;
            $mail->Username=$_POST['Username'];
			$mail->Password=$_POST['Password'];
		}
		else
		{
			$mail->SMTPAuth=false;
		} 
		
		$mail->From = $from;
		$mail->FromName = $fromName;
		$mail->AddAddress($to);
		$mail->AddReplyTo($from);
		
		$mail->WordWrap = 50; // set word wrap
		$mail->IsHTML($html);
		
		$mail->Subject  = $subject;
		$mail->Body = $message;
		
		if($mail->Send())
		{
			echo "Message Sent";
		}
		else
		{
			 echo "Message Not Sent<br>";
			 echo "Mailer Error: " . $mail->ErrorInfo;
		}
	}
?>
</body>
</html>

As you can see, PHPMailer comes with a full set of intuitive methods and properties that make sending emails very easy.

PEAR also provides an email package at PEAR::Mail_Mime. It has similar functionality to PHPMailer.

Next