<?php class MailSender { public function sendMail($email, $user, $id, $type) { require 'scripts/PHPMailer/PHPMailerAutoload.php'; include 'config.php'; $finishedtext = $active_email; // ADD $_SERVER['SERVER_PORT'] TO $verifyurl STRING AFTER $_SERVER['SERVER_NAME'] FOR DEV URLS USING PORTS OTHER THAN 80 // substr() trims "createuser.php" off of the current URL and replaces with verifyuser.php // Can pass 1 (verified) or 0 (unverified/blocked) into url for "v" parameter $verifyurl = substr($base_url . $_SERVER['PHP_SELF'], 0, -strlen(basename($_SERVER['PHP_SELF']))) . "verifyuser.php?v=1&uid=" . $id; // Create a new PHPMailer object // ADD sendmail_path = "env -i /usr/sbin/sendmail -t -i" to php.ini on UNIX servers $mail = new PHPMailer; $mail->isHTML(true); $mail->CharSet = "UTF-8"; $mail->WordWrap = 80; $mail->setFrom($from_email, $from_name); $mail->AddReplyTo($from_email, $from_name); /**** * Set who the message is to be sent to * CAN BE SET TO addAddress(youremail@website.com, 'Your Name') FOR PRIVATE USER APPROVAL BY MODERATOR * SET TO addAddress($email, $user) FOR USER SELF-VERIFICATION *****/ $mail->addAddress($email, $user); //Sets message body content based on type (verification or confirmation) if ($type == 'Verify') { //Set the subject line $mail->Subject = $user . ' Account Verification'; //Set the body of the message $mail->Body = $verifymsg . '<br><a href="' . $verifyurl . '">' . $verifyurl . '</a>'; $mail->AltBody = $verifymsg . $verifyurl; } elseif ($type == 'Active') { //Set the subject line $mail->Subject = $site_name . ' Account Created!'; //Set the body of the message $mail->Body = $active_email . '<br><a href="' . $signin_url . '">' . $signin_url . '</a>'; $mail->AltBody = $active_email . $signin_url; }; //SMTP Settings if ($mailServerType == 'smtp') { $mail->IsSMTP(); //Enable SMTP $mail->SMTPAuth = true; //SMTP Authentication $mail->Host = $smtp_server; //SMTP Host //Defaults: Non-Encrypted = 25, SSL = 465, TLS = 587 $mail->SMTPSecure = $smtp_security; // Sets the prefix to the server $mail->Port = $smtp_port; //SMTP Port //SMTP user auth $mail->Username = $smtp_user; //SMTP Username $mail->Password = $smtp_pw; //SMTP Password //******************** $mail->SMTPDebug = 0; //Set to 0 to disable debugging (for production) } try { $mail->Send(); } catch (phpmailerException $e) { echo $e->errorMessage(); // Error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); // Something else } } }