Results 1 to 8 of 8

customer get email error message on account set up

This is a discussion on customer get email error message on account set up within the osCmax v2 Installation issues forums, part of the osCmax v2.0 Forums category; I have atleast four customers who said that they abandoned purchasing as they couldnt get beyond account creation process. They ...

      
  1. #1
    Active Member
    Join Date
    Nov 2003
    Posts
    120
    Rep Power
    0


    Default customer get email error message on account set up

    I have atleast four customers who said that they abandoned purchasing as they couldnt get beyond account creation process. They said the site wouldnt take their emails.

    When I looked in admin, their accounts were created but in two case only two characters were registered after the dot. For example it had registered email as "abc@abc.co" instead of "abc@abc.com"

    Looks like a bug ?

  2. #2
    Active Member
    Join Date
    Nov 2003
    Posts
    120
    Rep Power
    0


    Default RE: customer get email error message on account set up

    it seems to be a new error. I tried to create a new account myself. On clicking the submit button on create account page, i got the following error:

    Warning: constant(): Couldn't find constant CHARSET in /public_html/includes/classes/email.php on line 61

    Warning: constant(): Couldn't find constant CHARSET in /public_html/includes/classes/email.php on line 62

    Warning: constant(): Couldn't find constant CHARSET in /public_html/includes/classes/email.php on line 61

    Warning: constant(): Couldn't find constant CHARSET in /public_html/includes/classes/email.php on line 62

    Warning: Cannot modify header information - headers already sent by (output started at /public_html/includes/classes/email.php:61) inpublic_html/includes/functions/general.php on line 35

    the only thing that i did since last night was that i added this code
    <body onload="selectRowEffect(this, 0)">

    main_page_tpl..

    I uploaded the backup but continue to see the error but continue to notice the error.

    I lost all the sales today. Please help

  3. #3
    osCMax Developer

    michael_s's Avatar
    Join Date
    Jul 2002
    Location
    Phoenix, AZ
    Posts
    19,501
    Rep Power
    567


    Default RE: customer get email error message on account set up

    Your problem is in /public_html/includes/classes/email.php on line 61... What does that line look like in your file? Have you made any mods to /public_html/includes/classes/email.php? How about restoring that file... Otherwise, start backing out your mods one by one until you find where you caused the problem.

    This is the line in standard osCMax:
    Code:
          $this->build_params['html_charset'] = constant('CHARSET');
    I cannot reproduce the issue, so most likely it is related to a code mod that you did somewhere.
    Michael Sasek
    osCMax Developer


    osCmax installation service - Have our professionals install osCmax on your server - same day service!
    osCmax 2.0 User Manual - the must have beginners guide to osCmax v2.0

    Stay Up To Date with everything osCMax:
    Free osCMax Newsletters - Security notices, New Releases, osCMax News
    osCMax on Twitter - Up to the minute info as it happens. Know it first.

    osCmax Documentation

  4. #4
    Active Member
    Join Date
    Nov 2003
    Posts
    120
    Rep Power
    0


    Default RE: customer get email error message on account set up

    This is the code in email.php

    * If you want the auto load functionality
    * to find other mime-image/file types, add the
    * extension and content type here.
    */

    $this->image_types = array('gif' => 'image/gif',
    'jpg' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'jpe' => 'image/jpeg',
    'bmp' => 'image/bmp',
    'png' => 'image/png',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'swf' => 'application/x-shockwave-flash');

    $this->build_params['html_encoding'] = 'quoted-printable';
    $this->build_params['text_encoding'] = '7bit';
    line 61 $this->build_params['html_charset'] = constant('CHARSET');
    $this->build_params['text_charset'] = constant('CHARSET');
    $this->build_params['text_wrap'] = 998;

    No changes were made recently

  5. #5
    Active Member
    Join Date
    Nov 2003
    Posts
    120
    Rep Power
    0


    Default RE: customer get email error message on account set up

    the only two mods that have been done are Quickbooks QBI and sugar Crm...those were done a while ago and the site was working fine after that,

  6. #6
    Active Member
    Join Date
    Nov 2003
    Posts
    120
    Rep Power
    0


    Default RE: customer get email error message on account set up

    here is entire email.php

    <?php
    /*
    $Id: email.php,v 1.1.1.1.2.1.2.2 2005/09/21 20:57:52 Michael Sasek Exp $

    osCMax Power E-Commerce
    http://oscdox.com

    Copyright (c) 2003 osCommerce

    Released under the GNU General Public License

    mail.php - a class to assist in building mime-HTML eMails

    The original class was made by Richard Heyes <richard@phpguru.org>
    and can be found here: http://www.phpguru.org

    Renamed and Modified by Jan Wildeboer for osCommerce
    */

    class email {
    var $html;
    var $text;
    var $output;
    var $html_text;
    var $html_images;
    var $image_types;
    var $build_params;
    var $attachments;
    var $headers;

    function email($headers = '') {
    if ($headers == '') $headers = array();

    $this->html_images = array();
    $this->headers = array();

    if (EMAIL_LINEFEED == 'CRLF') {
    $this->lf = "\r\n";
    } else {
    $this->lf = "\n";
    }

    /**
    * If you want the auto load functionality
    * to find other mime-image/file types, add the
    * extension and content type here.
    */

    $this->image_types = array('gif' => 'image/gif',
    'jpg' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'jpe' => 'image/jpeg',
    'bmp' => 'image/bmp',
    'png' => 'image/png',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'swf' => 'application/x-shockwave-flash');

    $this->build_params['html_encoding'] = 'quoted-printable';
    $this->build_params['text_encoding'] = '7bit';
    $this->build_params['html_charset'] = constant('CHARSET');
    $this->build_params['text_charset'] = constant('CHARSET');
    $this->build_params['text_wrap'] = 998;

    /**
    * Make sure the MIME version header is first.
    */

    $this->headers[] = 'MIME-Version: 1.0';

    reset($headers);
    while (list(,$value) = each($headers)) {
    if (tep_not_null($value)) {
    $this->headers[] = $value;
    }
    }
    }

    /**
    * This function will read a file in
    * from a supplied filename and return
    * it. This can then be given as the first
    * argument of the the functions
    * add_html_image() or add_attachment().
    */

    function get_file($filename) {
    $return = '';

    if ($fp = fopen($filename, 'rb')) {
    while (!feof($fp)) {
    $return .= fread($fp, 1024);
    }
    fclose($fp);

    return $return;
    } else {
    return false;
    }
    }

    /**
    * Function for extracting images from
    * html source. This function will look
    * through the html code supplied by add_html()
    * and find any file that ends in one of the
    * extensions defined in $obj->image_types.
    * If the file exists it will read it in and
    * embed it, (not an attachment).
    *
    * Function contributed by Dan Allen
    */

    function find_html_images($images_dir) {
    // Build the list of image extensions
    while (list($key, ) = each($this->image_types)) {
    $extensions[] = $key;
    }

    preg_match_all('/"([^"]+\.(' . implode('|', $extensions).'))"/Ui', $this->html, $images);

    for ($i=0; $i<count($images[1]); $i++) {
    if (file_exists($images_dir . $images[1][$i])) {
    $html_images[] = $images[1][$i];
    $this->html = str_replace($images[1][$i], basename($images[1][$i]), $this->html);
    }
    }

    if (tep_not_null($html_images)) {
    // If duplicate images are embedded, they may show up as attachments, so remove them.
    $html_images = array_unique($html_images);
    sort($html_images);

    for ($i=0; $i<count($html_images); $i++) {
    if ($image = $this->get_file($images_dir . $html_images[$i])) {
    $content_type = $this->image_types[substr($html_images[$i], strrpos($html_images[$i], '.') + 1)];
    $this->add_html_image($image, basename($html_images[$i]), $content_type);
    }
    }
    }
    }

    /**
    * Adds plain text. Use this function
    * when NOT sending html email
    */

    function add_text($text = '') {
    $this->text = tep_convert_linefeeds(array("\r\n", "\n", "\r"), $this->lf, $text);
    }

    /**
    * Adds a html part to the mail.
    * Also replaces image names with
    * content-id's.
    */

    function add_html($html, $text = NULL, $images_dir = NULL) {
    $this->html = tep_convert_linefeeds(array("\r\n", "\n", "\r"), '<br>', $html);
    $this->html_text = tep_convert_linefeeds(array("\r\n", "\n", "\r"), $this->lf, $text);

    if (isset($images_dir)) $this->find_html_images($images_dir);
    }

    /**
    * Adds an image to the list of embedded
    * images.
    */

    function add_html_image($file, $name = '', $c_type='application/octet-stream') {
    $this->html_images[] = array('body' => $file,
    'name' => $name,
    'c_type' => $c_type,
    'cid' => md5(uniqid(time())));
    }

    /**
    * Adds a file to the list of attachments.
    */

    function add_attachment($file, $name = '', $c_type='application/octet-stream', $encoding = 'base64') {
    $this->attachments[] = array('body' => $file,
    'name' => $name,
    'c_type' => $c_type,
    'encoding' => $encoding);
    }

    /**
    * Adds a text subpart to a mime_part object
    */

    /* HPDL PHP3 */
    // function &add_text_part(&$obj, $text) {
    function add_text_part(&$obj, $text) {
    $params['content_type'] = 'text/plain';
    $params['encoding'] = $this->build_params['text_encoding'];
    $params['charset'] = $this->build_params['text_charset'];

    if (is_object($obj)) {
    return $obj->addSubpart($text, $params);
    } else {
    return new mime($text, $params);
    }
    }

    /**
    * Adds a html subpart to a mime_part object
    */

    /* HPDL PHP3 */
    // function &add_html_part(&$obj) {
    function add_html_part(&$obj) {
    $params['content_type'] = 'text/html';
    $params['encoding'] = $this->build_params['html_encoding'];
    $params['charset'] = $this->build_params['html_charset'];

    if (is_object($obj)) {
    return $obj->addSubpart($this->html, $params);
    } else {
    return new mime($this->html, $params);
    }
    }

    /**
    * Starts a message with a mixed part
    */

    /* HPDL PHP3 */
    // function &add_mixed_part() {
    function add_mixed_part() {
    $params['content_type'] = 'multipart/mixed';

    return new mime('', $params);
    }

    /**
    * Adds an alternative part to a mime_part object
    */

    /* HPDL PHP3 */
    // function &add_alternative_part(&$obj) {
    function add_alternative_part(&$obj) {
    $params['content_type'] = 'multipart/alternative';

    if (is_object($obj)) {
    return $obj->addSubpart('', $params);
    } else {
    return new mime('', $params);
    }
    }

    /**
    * Adds a html subpart to a mime_part object
    */

    /* HPDL PHP3 */
    // function &add_related_part(&$obj) {
    function add_related_part(&$obj) {
    $params['content_type'] = 'multipart/related';

    if (is_object($obj)) {
    return $obj->addSubpart('', $params);
    } else {
    return new mime('', $params);
    }
    }

    /**
    * Adds an html image subpart to a mime_part object
    */

    /* HPDL PHP3 */
    // function &add_html_image_part(&$obj, $value) {
    function add_html_image_part(&$obj, $value) {
    $params['content_type'] = $value['c_type'];
    $params['encoding'] = 'base64';
    $params['disposition'] = 'inline';
    $params['dfilename'] = $value['name'];
    $params['cid'] = $value['cid'];

    $obj->addSubpart($value['body'], $params);
    }

    /**
    * Adds an attachment subpart to a mime_part object
    */

    /* HPDL PHP3 */
    // function &add_attachment_part(&$obj, $value) {
    function add_attachment_part(&$obj, $value) {
    $params['content_type'] = $value['c_type'];
    $params['encoding'] = $value['encoding'];
    $params['disposition'] = 'attachment';
    $params['dfilename'] = $value['name'];

    $obj->addSubpart($value['body'], $params);
    }

    /**
    * Builds the multipart message from the
    * list ($this->_parts). $params is an
    * array of parameters that shape the building
    * of the message. Currently supported are:
    *
    * $params['html_encoding'] - The type of encoding to use on html. Valid options are
    * "7bit", "quoted-printable" or "base64" (all without quotes).
    * 7bit is EXPRESSLY NOT RECOMMENDED. Default is quoted-printable
    * $params['text_encoding'] - The type of encoding to use on plain text Valid options are
    * "7bit", "quoted-printable" or "base64" (all without quotes).
    * Default is 7bit
    * $params['text_wrap'] - The character count at which to wrap 7bit encoded data.
    * Default this is 998.
    * $params['html_charset'] - The character set to use for a html section.
    * Default is iso-8859-1
    * $params['text_charset'] - The character set to use for a text section.
    * - Default is iso-8859-1
    */

    /* HPDL PHP3 */
    // function build_message($params = array()) {
    function build_message($params = '') {
    if ($params == '') $params = array();

    if (count($params) > 0) {
    reset($params);
    while(list($key, $value) = each($params)) {
    $this->build_params[$key] = $value;
    }
    }

    if (tep_not_null($this->html_images)) {
    reset($this->html_images);
    while (list(,$value) = each($this->html_images)) {
    $this->html = str_replace($value['name'], 'cid:' . $value['cid'], $this->html);
    }
    }

    $null = NULL;
    $attachments = ((tep_not_null($this->attachments)) ? true : false);
    $html_images = ((tep_not_null($this->html_images)) ? true : false);
    $html = ((tep_not_null($this->html)) ? true : false);
    $text = ((tep_not_null($this->text)) ? true : false);

    switch (true) {
    case (($text == true) && ($attachments == false)):
    /* HPDL PHP3 */
    // $message =& $this->add_text_part($null, $this->text);
    $message = $this->add_text_part($null, $this->text);
    break;
    case (($text == false) && ($attachments == true) && ($html == false)):
    /* HPDL PHP3 */
    // $message =& $this->add_mixed_part();
    $message = $this->add_mixed_part();

    for ($i=0; $i<count($this->attachments); $i++) {
    $this->add_attachment_part($message, $this->attachments[$i]);
    }
    break;
    case (($text == true) && ($attachments == true)):
    /* HPDL PHP3 */
    // $message =& $this->add_mixed_part();
    $message = $this->add_mixed_part();
    $this->add_text_part($message, $this->text);

    for ($i=0; $i<count($this->attachments); $i++) {
    $this->add_attachment_part($message, $this->attachments[$i]);
    }
    break;
    case (($html == true) && ($attachments == false) && ($html_images == false)):
    if (tep_not_null($this->html_text)) {
    /* HPDL PHP3 */
    // $message =& $this->add_alternative_part($null);
    $message = $this->add_alternative_part($null);
    $this->add_text_part($message, $this->html_text);
    $this->add_html_part($message);
    } else {
    /* HPDL PHP3 */
    // $message =& $this->add_html_part($null);
    $message = $this->add_html_part($null);
    }
    break;
    case (($html == true) && ($attachments == false) && ($html_images == true)):
    if (tep_not_null($this->html_text)) {
    /* HPDL PHP3 */
    // $message =& $this->add_alternative_part($null);
    $message = $this->add_alternative_part($null);
    $this->add_text_part($message, $this->html_text);
    /* HPDL PHP3 */
    // $related =& $this->add_related_part($message);
    $related = $this->add_related_part($message);
    } else {
    /* HPDL PHP3 */
    // $message =& $this->add_related_part($null);
    // $related =& $message;
    $message = $this->add_related_part($null);
    $related = $message;
    }
    $this->add_html_part($related);

    for ($i=0; $i<count($this->html_images); $i++) {
    $this->add_html_image_part($related, $this->html_images[$i]);
    }
    break;
    case (($html == true) && ($attachments == true) && ($html_images == false)):
    /* HPDL PHP3 */
    // $message =& $this->add_mixed_part();
    $message = $this->add_mixed_part();
    if (tep_not_null($this->html_text)) {
    /* HPDL PHP3 */
    // $alt =& $this->add_alternative_part($message);
    $alt = $this->add_alternative_part($message);
    $this->add_text_part($alt, $this->html_text);
    $this->add_html_part($alt);
    } else {
    $this->add_html_part($message);
    }

    for ($i=0; $i<count($this->attachments); $i++) {
    $this->add_attachment_part($message, $this->attachments[$i]);
    }
    break;
    case (($html == true) && ($attachments == true) && ($html_images == true)):
    /* HPDL PHP3 */
    // $message =& $this->add_mixed_part();
    $message = $this->add_mixed_part();

    if (tep_not_null($this->html_text)) {
    /* HPDL PHP3 */
    // $alt =& $this->add_alternative_part($message);
    $alt = $this->add_alternative_part($message);
    $this->add_text_part($alt, $this->html_text);
    /* HPDL PHP3 */
    // $rel =& $this->add_related_part($alt);
    $rel = $this->add_related_part($alt);
    } else {
    /* HPDL PHP3 */
    // $rel =& $this->add_related_part($message);
    $rel = $this->add_related_part($message);
    }
    $this->add_html_part($rel);

    for ($i=0; $i<count($this->html_images); $i++) {
    $this->add_html_image_part($rel, $this->html_images[$i]);
    }

    for ($i=0; $i<count($this->attachments); $i++) {
    $this->add_attachment_part($message, $this->attachments[$i]);
    }
    break;
    }

    if ( (isset($message)) && (is_object($message)) ) {
    $output = $message->encode();
    $this->output = $output['body'];

    reset($output['headers']);
    while (list($key, $value) = each($output['headers'])) {
    $headers[] = $key . ': ' . $value;
    }

    $this->headers = array_merge($this->headers, $headers);

    return true;
    } else {
    return false;
    }
    }

    /**
    * Sends the mail.
    */

    function send($to_name, $to_addr, $from_name, $from_addr, $subject = '', $headers = '') {
    // BOF: MS2 update 501112-Added
    if ((strstr($to_name, "\n") != false) || (strstr($to_name, "\r") != false)) {
    return false;
    }

    if ((strstr($to_addr, "\n") != false) || (strstr($to_addr, "\r") != false)) {
    return false;
    }

    if ((strstr($subject, "\n") != false) || (strstr($subject, "\r") != false)) {
    return false;
    }

    if ((strstr($from_name, "\n") != false) || (strstr($from_name, "\r") != false)) {
    return false;
    }

    if ((strstr($from_addr, "\n") != false) || (strstr($from_addr, "\r") != false)) {
    return false;
    }
    // EOF: MS2 update 501112-Added

    $to = (($to_name != '') ? '"' . $to_name . '" <' . $to_addr . '>' : $to_addr);
    $from = (($from_name != '') ? '"' . $from_name . '" <' . $from_addr . '>' : $from_addr);

    if (is_string($headers)) {
    $headers = explode($this->lf, trim($headers));
    }

    for ($i=0; $i<count($headers); $i++) {
    if (is_array($headers[$i])) {
    for ($j=0; $j<count($headers[$i]); $j++) {
    if ($headers[$i][$j] != '') {
    $xtra_headers[] = $headers[$i][$j];
    }
    }
    }

    if ($headers[$i] != '') {
    $xtra_headers[] = $headers[$i];
    }
    }

    if (!isset($xtra_headers)) {
    $xtra_headers = array();
    }

    if (EMAIL_TRANSPORT == 'smtp') {
    return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
    } else {
    return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
    }
    }

    /**
    * Use this method to return the email
    * in message/rfc822 format. Useful for
    * adding an email to another email as
    * an attachment. there's a commented
    * out example in example.php.
    *
    * string get_rfc822(string To name,
    * string To email,
    * string From name,
    * string From email,
    * [string Subject,
    * string Extra headers])
    */

    function get_rfc822($to_name, $to_addr, $from_name, $from_addr, $subject = '', $headers = '') {
    // Make up the date header as according to RFC822
    $date = 'Date: ' . date('D, d M y H:i:s');
    $to = (($to_name != '') ? 'To: "' . $to_name . '" <' . $to_addr . '>' : 'To: ' . $to_addr);
    $from = (($from_name != '') ? 'From: "' . $from_name . '" <' . $from_addr . '>' : 'From: ' . $from_addr);

    if (is_string($subject)) {
    $subject = 'Subject: ' . $subject;
    }

    if (is_string($headers)) {
    $headers = explode($this->lf, trim($headers));
    }

    for ($i=0; $i<count($headers); $i++) {
    if (is_array($headers[$i])) {
    for ($j=0; $j<count($headers[$i]); $j++) {
    if ($headers[$i][$j] != '') {
    $xtra_headers[] = $headers[$i][$j];
    }
    }
    }

    if ($headers[$i] != '') {
    $xtra_headers[] = $headers[$i];
    }
    }

    if (!isset($xtra_headers)) {
    $xtra_headers = array();
    }

    $headers = array_merge($this->headers, $xtra_headers);

    return $date . $this->lf . $from . $this->lf . $to . $this->lf . $subject . $this->lf . implode($this->lf, $headers) . $this->lf . $this->lf . $this->output;
    }
    }
    ?>

  7. #7
    Active Member
    Join Date
    Nov 2003
    Posts
    120
    Rep Power
    0


    Default RE: customer get email error message on account set up

    Also, noticed that same error is produced on checkout_process.php

  8. #8
    osCMax Developer

    michael_s's Avatar
    Join Date
    Jul 2002
    Location
    Phoenix, AZ
    Posts
    19,501
    Rep Power
    567


    Default RE: customer get email error message on account set up

    Your error will occur anywhere that email is being sent by your shop... It is not a problem in the stock code, so time to start backing out changes, or perhaps do a separate clean reinstall, test to make sure the error is not present, and add your template back in.
    Michael Sasek
    osCMax Developer


    osCmax installation service - Have our professionals install osCmax on your server - same day service!
    osCmax 2.0 User Manual - the must have beginners guide to osCmax v2.0

    Stay Up To Date with everything osCMax:
    Free osCMax Newsletters - Security notices, New Releases, osCMax News
    osCMax on Twitter - Up to the minute info as it happens. Know it first.

    osCmax Documentation

Similar Threads

  1. create new customer account email
    By joanstead in forum osCmax v2 Customization/Mods
    Replies: 7
    Last Post: 02-16-2006, 09:42 PM
  2. Email not sent after new customer account is created.
    By Dumb_Question in forum osCmax v2 Installation issues
    Replies: 7
    Last Post: 12-16-2005, 05:37 PM
  3. email message "a gift from...." -error
    By sheikyerbouti in forum osCmax v1.7 Discussion
    Replies: 2
    Last Post: 10-13-2005, 09:39 AM
  4. body of order email confirmation message
    By chrismole in forum osCmax v1.7 Discussion
    Replies: 3
    Last Post: 06-08-2005, 10:10 PM
  5. Customer adding a text message?
    By fireburst in forum osCmax v1.7 Discussion
    Replies: 4
    Last Post: 01-25-2005, 08:06 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •