Version: 1.1
Type: Sample Code (HOWTO)
Category: Networking
License: GNU General Public License
Description: XPertMailer is a php class that you can use to send encoded MIME type e-mail messages (text, HTML, HTML embeded images, attachments) towards a localhost, client, or relay SMTP servers with optional authorisation.
<?php
/********************************************************************
* XPertMailer is a php class that you can use to send encoded *
* MIME type e-mail messages (text, HTML, HTML embeded images, *
* attachments) towards a localhost, client or relay SMTP servers *
* with optional authorisation *
* ---------------------------------------------------------------- *
* For more informations, please visit: http://www.xpertmailer.com/ *
********************************************************************/
@set_time_limit(0);
@error_reporting(E_ALL); // for debugging
// you will need to download the latest version of XPertMailer from
// http://sourceforge.net/projects/xpertmailer/
require_once 'XPertMailer.php';
/**
* send a complex mail - text/html format
* with two HTML embeded images and two attachment files
* --------------------------------------
*/
// $mail = new XPertMailer; // <-- by default SMTP_LOCAL_CLIENT
// but you can optionaly use an relay host (name or ip)
$mail = new XPertMailer(SMTP_RELAY, "relay-host-name.com");
// optionaly you can set authentification for relay host
$mail->auth("username", "password");
// optionaly you can set time out for each smtp server connection
$mail->timeout(30);
// optionaly you can set priority high (default is P_NORMAL - normal)
$mail->priority(P_HIGH);
// optionaly you can set from mail address and optionaly from name
$mail->from("my@account.com", "My Name");
// optionaly you can set each header name and value
$header['Cc'] = "example1@domain.com";
$header['Bcc'] = "example2@domain.com";
$header['Reply-To'] = "reply@domain.com";
$header['X-Whatever'] = "description";
// set additional header informations
$mail->headers($header);
// set HTML embedded images name and optionaly you can rename them
// if the file is not in this directory, write the path name
// Attention: do not include path name in the rename
$imgs[] = "image1.jpg";
$imgs['newname.gif'] = "image2.gif";
// attach HTML embedded images
$mail->attach($imgs, ATTACH_HTML_IMG);
// set attachment files name and optional you can rename them
// if the file is not in this directory, write the path name
$file['new.zip'] = "archive1.zip";
$file[] = "archive2.tar.gz";
// attach files
$mail->attach($file, ATTACH_FILE);
// set the HTML message value
// Attention: do not include image path name
$html = '
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html>
<body>
<img src="image1.jpg" border="0"><br>
<b><u><i>next image</i></u></b> :-)<br>
<img src="newname.gif" border="2"><br>
<font color="red">message html red here</font>
</body>
</html>';
// send the e-mail and optionaly you can set charset value
// as you can see, the text/plain message is required because
// not all mail clients can currently support HTML messages
$send = $mail->send("expertphp@domain.com", "subject here",
"this is a HTML message", $html, "UTF-8");
// output -->
// compare the result and print a message
echo $send ? "Done." : "Error.";
// some useful for debugging
echo "<br>Server response: ".$mail->response();
?>