/** * @param string $input */ function password_restore_email($input) { $use_password_verify = defined('SYNAPP_USE_PASSWORD_HASH_AUTHENTICATION') && (SYNAPP_USE_PASSWORD_HASH_AUTHENTICATION === true || is_string(SYNAPP_USE_PASSWORD_HASH_AUTHENTICATION) && (trim(strtolower(SYNAPP_USE_PASSWORD_HASH_AUTHENTICATION)) === 'on' || trim(strtolower(SYNAPP_USE_PASSWORD_HASH_AUTHENTICATION)) === 'true' || trim(strtolower(SYNAPP_USE_PASSWORD_HASH_AUTHENTICATION)) === '1')) ? true : false; $link = connect(); if (parse_email($input, 0) == 0) { $sql = "SELECT * FROM users WHERE email = :input AND confirmed_email = 1"; $isemail = true; } else { $sql = "SELECT * FROM users WHERE user = :input"; $isemail = false; } $stmt = $link->prepare($sql); $stmt->bindValue(':input', $input, PDO::PARAM_STR); $stmt->execute(); $link = null; $ua = $stmt->fetch(PDO::FETCH_ASSOC); $emailnotfound = true; $usernotfound = true; if (isset($ua['email']) && $ua['email'] !== '') { $usernotfound = false; if ($ua['email'] != '' && parse_email($ua['email']) == 0 && $ua['confirmed_email'] == 1) { $emailnotfound = false; } } if (!$emailnotfound) { $user = $ua['user']; $link = connect(); $sql = "UPDATE users SET recovery = :recovery WHERE user = :user"; $stmt = $link->prepare($sql); $prng = new synapp\info\tools\passwordgenerator\cryptosecureprng\CryptoSecurePRNG(); $code = $prng->rand(); $stmt->bindValue(':recovery', $use_password_verify ? password_hash($code, SYNAPP_PASSWORD_DEFAULT) : hash("sha256", $code), PDO::PARAM_STR); $stmt->bindValue(':user', $user); $stmt->execute(); $email = $ua['email']; $to = $email; $subject = passresout('subject', $user); $mime_boundary = hash("sha256", time()); $msg = passresout('email', $user, $email, $code, $mime_boundary); $headers = passresout('headers', $mime_boundary); mail($to, $subject, $msg, $headers); if ($isemail) { echo passresout('prmailsenttoaddress', $input); } else { echo passresout('prmailsenttouser', $input); } } else { if ($isemail) { echo passresout('emailnotfound', $input); } else { if ($usernotfound) { echo passresout('usernotfound', $input); } else { echo passresout('novalidemailassociated', $input); } } } }
public function pass_reset_email() { $mail_setting = $this->settings_model->get_email_settings(); $user_details = $this->get_user_details($this->input->post('email')); $message = $this->settings_model->get_email_template('FORGOT_PWD'); $subject = $message['subject']; $emailbody = $message['content']; $key = genRandomString('32'); $email = sha1(md5($this->input->post('email'))); $confirm = "<a target='_blank' href='" . base_url() . "login_user/validate_pw_reset_credentials/{$key}/{$email}'>here</a>"; $parseElement = array("USERNAME" => $user_details['f_name'], "SITENAME" => 'JobPortal', "LINK" => $confirm, "SITELINK" => base_url()); $subject = parse_email($parseElement, $subject); $message = parse_email($parseElement, $emailbody); $data = array('subject' => $subject, 'message' => $message, 'to' => $this->input->post('email')); $this->update_activation_reset_key($key); send_email($mail_setting, $data); }
function reg_confirmation_email($activation_code) { $mail_setting = $this->settings_model->get_email_settings(); $message = $this->settings_model->get_email_template('REGISTRATION'); $subject = $message['subject']; $emailbody = $message['content']; $hash_email = sha1(md5($this->input->post('email'))); $confirm = "Click <a href='" . site_url() . "register/activation_process/{$activation_code}/{$hash_email}'> here</a> to activate your JobPortal account"; $parseElement = array("USERNAME" => $this->input->post("f_name"), "SITENAME" => 'JobPortal', "CONFIRM" => $confirm, "LINK" => base_url()); $subject = parse_email($parseElement, $subject); $emailbody = parse_email($parseElement, $emailbody); //echo $emailbody;exit; $mail_params = array('to' => $this->input->post('email'), 'subject' => $subject, 'message' => $emailbody); if (send_email($mail_setting, $mail_params)) { return true; } else { return false; } }
function notify($device, $title, $message) { /// NOTE. Need full rewrite to universal function with message queues and multi-protocol (email,jabber,twitter) global $config, $debug; if ($config['alerts']['email']['enable'] && !$device['ignore']) { if (!get_dev_attrib($device, 'disable_notify')) { if ($config['alerts']['email']['default_only']) { $email = $config['alerts']['email']['default']; } else { if (get_dev_attrib($device, 'override_sysContact_bool')) { $email = get_dev_attrib($device, 'override_sysContact_string'); } elseif ($device['sysContact']) { $email = $device['sysContact']; } else { $email = $config['alerts']['email']['default']; } } $emails = parse_email($email); if ($emails) { // Mail backend params $params = array('localhost' => php_uname('n')); $backend = strtolower(trim($config['email_backend'])); switch ($backend) { case 'sendmail': $params['sendmail_path'] = $config['email_sendmail_path']; break; case 'smtp': $params['host'] = $config['email_smtp_host']; $params['port'] = $config['email_smtp_port']; if ($config['email_smtp_secure'] == 'ssl') { $params['host'] = 'ssl://' . $config['email_smtp_host']; if ($config['email_smtp_port'] == 25) { $params['port'] = 465; // Default port for SSL } } $params['timeout'] = $config['email_smtp_timeout']; $params['auth'] = $config['email_smtp_auth']; $params['username'] = $config['email_smtp_username']; $params['password'] = $config['email_smtp_password']; if ($debug) { $params['debug'] = TRUE; } break; default: $backend = 'mail'; // Default mailer backend } // Mail headers $headers = array(); if (empty($config['email_from'])) { $headers['From'] = '"Observium" <observium@' . $params['localhost'] . '>'; // Default "From:" } else { foreach (parse_email($config['email_from']) as $from => $from_name) { $headers['From'] = empty($from_name) ? $from : '"' . $from_name . '" <' . $from . '>'; // From: } } $rcpts_full = ''; $rcpts = ''; foreach ($emails as $to => $to_name) { $rcpts_full .= empty($to_name) ? $to . ', ' : '"' . $to_name . '" <' . $to . '>, '; $rcpts .= $to . ', '; } $rcpts_full = substr($rcpts_full, 0, -2); // To: $rcpts = substr($rcpts, 0, -2); $headers['Subject'] = $title; // Subject: $headers['X-Priority'] = 3; // Mail priority $headers['X-Mailer'] = OBSERVIUM_PRODUCT . ' ' . OBSERVIUM_VERSION; // X-Mailer: #$headers['Content-type'] = 'text/html'; $headers['Message-ID'] = '<' . md5(uniqid(time())) . '@' . $params['localhost'] . '>'; $headers['Date'] = date('r', time()); // Mail body $message_header = $config['page_title_prefix'] . "\n\n"; $message_footer = "\n\nE-mail sent to: " . $rcpts . "\n"; $message_footer .= "E-mail sent at: " . date($config['timestamp_format']) . "\n"; $body = $message_header . $message . $message_footer; // Create mailer instance $mail =& Mail::factory($backend, $params); // Sending email $status = $mail->send($rcpts_full, $headers, $body); if (PEAR::isError($status)) { echo 'Mailer Error: ' . $status->getMessage() . PHP_EOL; } } } } }
function notify($device, $title, $message) { global $config; if ($config['alerts']['email']['enable']) { if (!get_dev_attrib($device, 'disable_notify')) { if ($config['alerts']['email']['default_only']) { $email = $config['alerts']['email']['default']; } else { if (get_dev_attrib($device, 'override_sysContact_bool')) { $email = get_dev_attrib($device, 'override_sysContact_string'); } elseif ($device['sysContact']) { $email = $device['sysContact']; } else { $email = $config['alerts']['email']['default']; } } $emails = parse_email($email); if ($emails) { $message_header = $config['page_title_prefix'] . "\n\n"; // FIXME: use different config element $message_footer = "\n\nE-mail sent to: "; $i = 0; $count = count($emails); foreach ($emails as $email => $email_name) { $i++; $message_footer .= $email; if ($i < $count) { $message_footer .= ", "; } else { $message_footer .= "\n"; } } $message_footer .= "E-mail sent at: " . date($config['timestamp_format']) . "\n"; if (($err = send_mail($emails, $title, $message_header . $message . $message_footer)) !== true) { echo "Mailer Error: " . $err . "\n"; } } } } }
$email = ''; while (!feof($fd)) { $email .= fread($fd, 1024); } fclose($fd); if (SITE_URL) { $domain = SITE_URL; } else { // Break up the lines. $lines = explode("\n", $email); // Loop through the email one line at a time. As soon as we find the To: line, // or the headers end, then stop looking. for ($i = 0; $i < count($lines); $i++) { if (preg_match('/^To:(.*)/', $lines[$i], $matches)) { // For combo name/email addresses, parse out the email address. $to = parse_email(trim($matches[1])); $to = explode('@', $to); if (!empty($to[1])) { $domain = $to[1]; } break; } elseif (trim($lines[$i]) == '') { break; } } } if (!empty($domain)) { // Compose URL. $transport = USE_SSL ? 'https://' : 'http://'; $port = SERVER_PORT ? ':' . SERVER_PORT : ''; $query = SERVER_QUERY_STRING ? '?' . SERVER_QUERY_STRING : '';
} break; case 'mail': default: $backend = 'mail'; // Default mailer backend } // Time sent RFC 2822 $time_rfc = date('r', time()); // Mail headers $headers = array(); if (empty($config['email']['from'])) { $config['email']['from'] = 'Observium <observium@' . $localhost . '>'; // Default "From:" } foreach (parse_email($config['email']['from']) as $from => $from_name) { $headers['From'] = empty($from_name) ? $from : '"' . $from_name . '" <' . $from . '>'; // From: $headers['Return-Path'] = $from; break; // use only first entry } $rcpts = array(); $rcpts_full = array(); foreach ($emails as $to => $to_name) { $rcpts_full[] = empty($to_name) ? $to : '"' . trim($to_name) . '" <' . $to . '>'; $rcpts[] = $to; } $rcpts_full = implode(', ', $rcpts_full); $rcpts = implode(', ', $rcpts); $headers['To'] = $rcpts_full;
$from = '"' . html_entity_decode($info['title'], ENT_QUOTES) . '" <' . $info['email'] . '>'; if (!isset($_POST['email']) || count($_POST['email']) == 0) { echo '<p class="error">No pending members were checked and no ' . 'members have been approved or rejected.</p>'; } else { // check which it is $selected = $_POST['selected']; if ($selected == 'APPROVE') { require_once 'Mail.php'; foreach ($_POST['email'] as $email) { $success = approve_member($listing, $email); if (!$success) { echo '<p class="error">Error approving member with ' . 'email address <i>' . $_REQUEST['email'] . '</i>.</p>'; } else { if ($info['emailapproved']) { // send if there is $body = parse_email('approved', $listing, $email); // use send_email function $mail_sent = send_email($email, $from, $subject, $body); } } } echo '<p class="success">Finished approving selected members.</p>'; } else { if ($selected == 'REJECT') { foreach ($_POST['email'] as $email) { $success = delete_member($listing, $email); if (!$success) { echo '<p class="error">Error rejecting member with ' . 'email address <i>' . $_REQUEST['email'] . '</i>.</p>'; } } echo '<p class="success">Finished rejecting selected members.</p>';
/** * Get contacts associated with selected notification type and alert ID * Currently know notification types: alert, syslog * * @param array $device Common device array * @param int $alert_id Alert ID * @param string $notification_type Used type for notifications * @return array Array with transport -> endpoints lists */ function get_alert_contacts($device, $alert_id, $notification_type) { if (!is_array($device)) { $device = device_by_id_cache($device); } $transports = array(); if (!$device['ignore'] && !get_dev_attrib($device, 'disable_notify') && !$GLOBALS['config']['alerts']['disable']['all']) { // figure out which transport methods apply to an alert $sql = "SELECT * FROM `alert_contacts`"; $sql .= " WHERE `contact_disabled` = 0 AND `contact_id` IN"; $sql .= " (SELECT `contact_id` FROM `alert_contacts_assoc` WHERE `aca_type` = ? AND `alert_checker_id` = ?);"; foreach (dbFetchRows($sql, array($notification_type, $alert_id)) as $alert_entry) { $transports[$alert_entry['contact_method']][] = $alert_entry; } if (empty($transports)) { // if alert_contacts table is not in use, fall back to default // hardcoded defaults for when there is no contact configured. $email = NULL; if ($GLOBALS['config']['email']['default_only']) { // default only mail $email = $GLOBALS['config']['email']['default']; } else { // default device contact if (get_dev_attrib($device, 'override_sysContact_bool')) { $email = get_dev_attrib($device, 'override_sysContact_string'); } else { if (parse_email($device['sysContact'])) { $email = $device['sysContact']; } else { $email = $GLOBALS['config']['email']['default']; } } } if ($email != NULL) { $emails = parse_email($email); foreach ($emails as $email => $descr) { $transports['email'][] = array('contact_endpoint' => '{"email":"' . $email . '"}', 'contact_descr' => $descr, 'contact_transport' => 'email'); } } } } return $transports; }
/** * @dataProvider providerEmail */ public function testParseEmail($string, $result) { $this->assertSame($result, parse_email($string)); }
has been sent. You will be notified when you have been added into the actual members list. If two weeks have passed and you have received no email, please <a href="mailto:<?php echo str_replace('@', '&#' . ord('@') . ';', $info['email']); ?> ">email me</a> if you wish to check up on your form.</p> <?php } else { // email! $to = $email; $subject = $info['title'] . ' ' . ucfirst($info['listingtype']) . ' Information'; // $from = str_replace( ',', '', $info['title'] ) . // strip commas // ' <' . $info['email'] . '>'; $from = '"' . html_entity_decode($info['title'], ENT_QUOTES) . '" <' . $info['email'] . '>'; $message = parse_email('signup', $listing, $email, $password); $message = stripslashes($message); // use send_email function $success_mail = send_email($to, $from, $subject, $message); if ($success_mail !== true) { ?> <p class="show_join_processed_errormail">Your form has been processed correctly, but unfortunately there was an error sending your application information to you. If you wish to receive information about your application, please feel free to <a href="mailto:<?php echo str_replace('@', '&#' . ord('@') . ';', $info['email']); ?> ">email me</a> and I will personally look into it. Please not I cannot send your password to you.</p>
/** * @param string $edit * @param PDO $link * @return bool */ function change_email($edit, $link) { $error = 0; if (isset($_POST[$edit])) { $_POST[$edit] = trim($_POST[$edit]); } $change = isset($_POST['edit']) ? $_POST['edit'] == $edit && ($error = parse_email($_POST[$edit])) === 0 ? true : false : false; if ($change) { if ($_POST[$edit] === $_SESSION['user_array']['email']) { change($edit, $link); return true; } } if ($change) { if ($_POST[$edit] === "") { change($edit, $link); $_SESSION['user_array']['confirmed_email'] = chr(0); return true; } if (captcha_verify_word()) { $sql = "SELECT user, email FROM confirmed_emails where email = :email"; $stmt = $link->prepare($sql); $stmt->bindValue(':email', $_POST[$edit], PDO::PARAM_STR); if ($stmt->execute() !== false && ($row = $stmt->fetch(PDO::FETCH_ASSOC))) { if ($row['user'] !== $_SESSION['user_array']['user']) { $error = 3; } } if (!$error) { if (change($edit, $link)) { send_confirmation_email($_POST[$edit], $link); $_SESSION['user_array']['email'] = $_POST[$edit]; echo PR_EMAIL . ': ' . $_SESSION['user_array']['email'] . " "; echo (ord($_SESSION['user_array']['hemail']) ? PR_HIDDEN : PR_VISIBLE) . " [<a href=\"profile.phtml?user="******"&edit=email\">" . PR_EDIT . "</a>] <span style=color:red>" . PR_SENT_1_A . "</span><script type='text/javascript'>alert(\"" . PR_SENT_1 . "\\n" . PR_SENT_2 . "\")</script><br />" . PHP_EOL; return false; } } } else { $error = 4; } } echo "<form id=\"editForm\" method=\"POST\">" . PR_EMAIL . ": <input type=\"text\" id=\"" . $edit . "\" name=\"" . $edit . "\" value=\"" . $_SESSION['user_array'][$edit] . "\" onfocus=\"javascript:document.getElementById('focusId').value='" . $edit . "';\" />"; echo "<input type=\"hidden\" id=\"focusId\" name=\"focusId\" value=\"" . $edit . "\">" . PHP_EOL; echo "<input type=\"hidden\" name=\"edit\" value=\"" . $edit . "\">" . PHP_EOL; echo "<input type=\"hidden\" name=\"user\" value=\"" . $_SESSION['user_array']['user'] . "\">" . PHP_EOL; echo "<input type=\"checkbox\" name=\"h" . $edit . "\" value=\"true\""; if (ord($_SESSION['user_array']['h' . $edit])) { echo " checked=\"checked\" "; } echo '/>' . PR_HIDE; switch ($error) { case 1: echo "<span style=\"color:red\"> " . PR_ERR_MAIL_LONG . "</span><script type='text/javascript'>focusId='" . $edit . "'</script>"; break; case 2: echo "<span style=\"color:red\"> " . PR_ERR_MAIL_INVALID . "</span><script type='text/javascript'>focusId='" . $edit . "'</script>"; break; case 3: echo "<span style=\"color:red\"> " . PR_ERR_MAIL_ALREADY_ASSOC . "</span><script type='text/javascript'>focusId='" . $edit . "';document.getElementById('" . $edit . "').value='" . $_POST[$edit] . "';</script>"; break; } echo "<br /><span id=\"captchaImage\" style=\"border:0;width:140px;\"><img src=\"." . SYNAPP_CAPTCHA_PATH . "/captcha.image.php?nocache=" . hash("sha256", time() . mt_rand()) . "\" alt=\"captcha\"/></span><a \nhref=\"#\" onclick=\"updateCaptcha(null, '." . SYNAPP_CAPTCHA_PATH . "' );return false;\"><img src=\"." . SYNAPP_UI_RESOURCES_PATH . "/images/refresh.png\" style=\"border:0\" alt=\"" . PR_REFRESH . "\" title=\"" . PR_REFRESH . "\"/></a>"; echo "<br />" . PR_CAPT . "<input type=\"text\" id=\"magicword\" " . "onfocus=\"javascript:document.getElementById('focusId').value='magicword';\" name=\"magicword\" autocomplete=\"off\" />"; if ($error == 4) { echo "<span style=\"color:red\"> " . PR_ERR_CAPT . "</span><script type='text/javascript'>" . "focusId='magicword';document.getElementById('" . $edit . "').value='" . $_POST[$edit] . "';</script>"; } echo '<br /></form>' . PHP_EOL; if (isset($_GET['alert']) && !count($_POST)) { if ($_GET['alert'] === "true") { echo "<script type='text/javascript'>alert(\"" . PR_VALIDATE_MAIL . "\")</script>"; } } return false; }
private function sendJobNotification($email) { $mail_setting = $this->settings_model->get_email_settings(); $message = $this->settings_model->get_email_template('NOTIFY_USER'); $subject = $message['subject']; $emailbody = $message['content']; $parseElement = array("USERNAME" => $email, "SITENAME" => 'JobPortal', "SITELINK" => base_url()); $subject = parse_email($parseElement, $subject); $emailbody = parse_email($parseElement, $emailbody); $mail_params = array('to' => $email, 'subject' => $subject, 'message' => $emailbody); if (send_email($mail_setting, $mail_params)) { return true; } else { return false; } }
function send_mail($emails, $subject, $message, $html = false) { global $config; if (is_array($emails) || ($emails = parse_email($emails))) { if (!class_exists("PHPMailer", false)) { include_once $config['install_dir'] . "/includes/phpmailer/class.phpmailer.php"; } $mail = new PHPMailer(); $mail->Hostname = php_uname('n'); if (empty($config['email_from'])) { $config['email_from'] = '"' . $config['project_name'] . '" <' . $config['email_user'] . '@' . $mail->Hostname . '>'; } foreach (parse_email($config['email_from']) as $from => $from_name) { $mail->setFrom($from, $from_name); } foreach ($emails as $email => $email_name) { $mail->addAddress($email, $email_name); } $mail->Subject = $subject; $mail->XMailer = $config['project_name_version']; $mail->CharSet = 'utf-8'; $mail->WordWrap = 76; $mail->Body = $message; if ($html) { $mail->isHTML(true); } switch (strtolower(trim($config['email_backend']))) { case 'sendmail': $mail->Mailer = 'sendmail'; $mail->Sendmail = $config['email_sendmail_path']; break; case 'smtp': $mail->isSMTP(); $mail->Host = $config['email_smtp_host']; $mail->Timeout = $config['email_smtp_timeout']; $mail->SMTPAuth = $config['email_smtp_auth']; $mail->SMTPSecure = $config['email_smtp_secure']; $mail->Port = $config['email_smtp_port']; $mail->Username = $config['email_smtp_username']; $mail->Password = $config['email_smtp_password']; $mail->SMTPDebug = false; break; default: $mail->Mailer = 'mail'; break; } return $mail->send() ? true : $mail->ErrorInfo; } }
$email = $device['sysContact']; } else { $email = $config['email']['default']; } } // lookup additional email addresses for first device random alert_id $alert_id = dbFetchCell('SELECT `alert_test_id` FROM `alert_table` WHERE `device_id` = ?', array($device['device_id'])); $sql = "SELECT `contact_descr`, `contact_endpoint` FROM `alert_contacts`"; $sql .= " WHERE `contact_disabled` = 0 AND `contact_method` = 'email'"; $sql .= " AND `contact_id` IN"; $sql .= " (SELECT `alert_contact_id` FROM `alert_contacts_assoc` WHERE `alert_checker_id` = ?);"; foreach (dbFetchRows($sql, array($alert_id)) as $entry) { $email .= "," . $entry['contact_descr'] . " <" . $entry['contact_endpoint'] . ">"; } } $emails = parse_email($email); if ($emails) { $rcpts_full = array(); foreach ($emails as $to => $to_name) { $rcpts_full[] = empty($to_name) ? $to : '"' . trim($to_name) . '" <' . $to . '>'; } $rcpts_full = implode(', ', $rcpts_full); print_message("尝试发送测试通知 %W" . $device['hostname'] . "%n 到这些邮箱:\n %g{$rcpts_full}%n", 'color', FALSE); // Create multipart (plain+html) message $template_html = '<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <tt>{{MESSAGE}}</tt><br /> </body>
$fields = explode(',', $info['additional']); foreach ($fields as $field) { if ($field != '') { @($notify_message .= ucwords(str_replace('_', ' ', $field)) . ': ' . $data[$field] . "\r\n"); } } $notify_message .= "\r\nTo add this member, go to " . str_replace(get_setting('root_path_absolute'), get_setting('root_path_web'), get_setting('installation_path')) . "members.php\r\n"; $notify_message = stripslashes($notify_message); $notify_from = 'Enthusiast 3 <' . get_setting('owner_email') . '>'; // use send_email function $mail_sent = send_email($info['email'], $notify_from, $notify_subject, $notify_message); } // end send email to owner // send email to member $to = $data['email_new']; $body = parse_email('update', $info['listingid'], $to, $data['password']); $body = stripslashes($body); $subject = $info['title'] . ': Update Information'; $from = '"' . html_entity_decode($info['title'], ENT_QUOTES) . '" <' . $info['email'] . '>'; // use send_email function $mail_sent = send_email($to, $from, $subject, $body); $show_form = false; if ($info['holdupdate'] == 1) { ?> <p class="show_update_process_hold">Your information has been successfully updated in the member database. Update information holding has been activated for this fanlisting, and you been placed back on the pending queue for me to review the changes you have made to your record. You will be moved back to the members list as soon as I have updated the listing again.</p>
?> <p style="font-weight: bold;" class="show_lostpass_no_such_member">There was an error in your request to reset your password. This may be because there is no member recorded in the <?php echo $info['listingtype']; ?> with that email address. Please check your spelling and try again.</p> <?php } else { $password = reset_member_password($listing, $member['email']); // send email $to = $member['email']; $subject = $info['title'] . ' ' . ucfirst($info['listingtype']) . ': Password Reset'; $from = '"' . html_entity_decode($info['title'], ENT_QUOTES) . '" <' . $info['email'] . '>'; $message = parse_email('lostpass', $listing, $member['email'], $password); $message = stripslashes($message); // use send_email function $mail_sent = send_email($to, $from, $subject, $message); if ($mail_sent) { ?> <p class="show_lostpass_processed_done">A password has been successfully generated for you and this has been sent to your email address. Please update this password as soon as possible for your own security.</p> <?php } else { ?> <p class="show_lostpass_processed_error">There was an error sending the generated password to you. Please email me instead and let me know of the problem.</p>