Jump to content

Archived

This topic is now archived and is closed to further replies.

multimixer

Email issues

Recommended Posts

Hello

I've a problem since a few days, the new customers don't receive anymore the welcome message, the customer doesn't receive anymore the copy of his order, I can also not more send email via the administartion (and I suppose also newsletter). I've then look in my webmail and see that all the messages are undelivered because the "domain of sender address does not exist". So I contact my host (mavenhosting) who tells me that to fight "spam" the function "mail" is only possible to send an email at an adress of the domain name of the site itself !!!

What can I do ? An idea ?

The "contact us" form is ok.

Thanks in advance

France

Share this post


Link to post
Share on other sites

So, your host say that the RECEIVER needs to belong to the domain?. It's common that a host require that the sender OR the receiver need to belong to the domain, at yahoo it was the problem that the SENDER needs to belong to the domain, thats why the solution #2

 

The contact us work, because you are the receiver. For sure you have as a store owner mail address, an email that belongs to your domain, is it so?

 

With this setting I don't know how to send mails. But I know there are others hosts

Share this post


Link to post
Share on other sites

So, your host say that the RECEIVER needs to belong to the domain?. It's common that a host require that the sender OR the receiver need to belong to the domain, at yahoo it was the problem that the SENDER needs to belong to the domain, thats why the solution #2

 

The contact us work, because you are the receiver. For sure you have as a store owner mail address, an email that belongs to your domain, is it so?

 

With this setting I don't know how to send mails. But I know there are others hosts

Yes that's it ! I've also need to change my email adress (usually I use this of my provider) for one on my hosting domain, so that I can receive the email at least ! After some mailings, they 'll see if they can remove the protection for my account so that I can work !

Share this post


Link to post
Share on other sites

Yes that's it ! I've also need to change my email adress (usually I use this of my provider) for one on my hosting domain, so that I can receive the email at least ! After some mailings, they 'll see if they can remove the protection for my account so that I can work !

An update : I've tried also to send emails from the adminstration of my os commerce to one of my email adres of another domain hosted by the self host and the mail is also not sent, here is what I see in the webmail regarding this email (I've just replaced the domain name by xxx to avoid spamming):

 

This message was created automatically by mail delivery software.

 

A message that you sent could not be delivered to one or more of its

recipients. This is a permanent error. The following address(es) failed:

 

info@xxxx.com

SMTP error from remote mail server after RCPT TO:<info@xxx.com>:

host xxxx.com [xx.xx.xx.xxx]: 550-Verification failed for <labrador@serveur.maven2-1.com>

550-The mail server could not deliver mail to labrador@serveur.maven2-1.com. The account or domain may not exist, they may be blacklisted, or missing the proper dns entries.

550 Sender verify failed

 

So I think it's well a problem to the server of the host and not in my os commerce (because in the last email, they say it was a problem of configuration of my os commerce, or until the 17 oct all was ok and I've made no change)

Share this post


Link to post
Share on other sites

I have just setup my site and the contact us form will not work. I'm not receiving any emails. I made the changes you suggested in the second post but I'm still not getting any response. The system says that my emails are sent but I don't receive anything.

 

I replaced:

 

if (tep_validate_email($email_address)) {

     tep_mail(STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, EMAIL_SUBJECT, $enquiry, $name, $email_address);

 

with:

 

// BOF multimixer// 
       //define variable $email_body// 
       $email_body = $enquiry . "\r\n" . $name . "\r\n" . $email_address; 
       // if you want to add more fields do so by adding this line [ ."\r\n" . ] between the fields you wish to display and order them acourdingly// 
       //define variable $from_email. Set to Store owner email address as defined in Admin panel// 
       $from_email = (STORE_OWNER_EMAIL_ADDRESS); 
       //EOF multimixer // 

       //BOF Multimixer// 
       // $enquiry replaced by $email_body Includes $email_body to message instead of $enquiry. $email_address replaced by $from_email Email is getting send from $from-email instead of $email_address// 
       if (tep_validate_email($email_address)) { 
         tep_mail(STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, EMAIL_SUBJECT, $email_body, $name, $from_email); 
         //EOF multimixer//

 

 

I have tried all different settings but this is how I currently have them set:

 

e-mail transport method: sendmail

e-mail line feeds : LF

Use MIME HTML When sending emails: false

verify email addresses through DNS: false


Outside links are not allowed in signatures!

Share this post


Link to post
Share on other sites

Is your store owner email address an address that belongs to your domain?

 

How do the other emails work that you send to people? ie order confirmation, admin emails etc?

 

Yes, the store owner email address belongs to the domain.

 

 

The email within the admin area works. I'm not sure about order confirmation. I'll have to run a test on that.


Outside links are not allowed in signatures!

Share this post


Link to post
Share on other sites

Hello. I never thought I'd be posting on these forums, but I've hit a roadblock. I've been modifying my site for some time now with little PHP knowledge. Reviewing my error logs today, I found that e-mails weren't getting through to customers.

 

/usr/sbin/sendmail: unexpected response 553 to RCPT TO command,

 

So I did some tests and got discovered the following:

 

Welcome e-mail and order e-mails do not get sent to customers.

Contact Us e-mail does not get sent to store owner.

E-Mails from logging onto Admin does not work.

Send Extra Order Emails To works.

E-Mail Address, E-Mail From, and Send Extra Order Emails To are all the exact same value in the following format myname@domain.com. It does not belong to the domain. Changing it to an address on my domain had no effect.

Ran E-Mail Testing Script contribution and received only the native PHP mail.

 

It could be that one of my add-ons killed e-mail. But my error logs helped me pinpoint that this problem existed before any major tampering with the site. I'd hate to do a vanilla install to fix this problem. I would appreciate assistance and thank you for your time in reading this post and for helping me.

Share this post


Link to post
Share on other sites

Is your store owner email address an address that belongs to your domain?

 

How do the other emails work that you send to people? ie order confirmation, admin emails etc?

 

 

Hey Multimixer, after further tests I have found out that the only emails that are working is the admin emails. Contact form and order confirmation are not.

 

Any suggestions?

 

thanks.


Outside links are not allowed in signatures!

Share this post


Link to post
Share on other sites

I worked out some solutions for mails, they are already posted all around the forum, now I want to share them in a organized way. I hope somebody will find this useful.

 

A. How to get a notification when a person register.

 

1) Set up the "extra order emails" feature in Admin/my store

 

2) In file catalog/create_account.php

 

Find the lines

email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;
  tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

 

Place after

 // BOF multimixer 24.6.2009 send emails to other people
  $owners_text = EMAIL_TEXT_OWNER_INFO . "\r\n" .EMAIL_TEXT_CUSTOMER_NAME . ' ' . $name . "\r\n" . EMAIL_TEXT_CUSTOMER_EMAIL . ' ' .  $email_address . "\r\n" . EMAIL_TEXT_CUSTOMER_PHONE . ' ' . $telephone . "\r\n" . EMAIL_TEXT_CUSTOMER_ADDRESS . ' ' . $street_address . "\r\n" . EMAIL_TEXT_CUSTOMER_CITY . ' ' . $city . "\r\n" . EMAIL_TEXT_CUSTOMER_STATE . ' ' . $state . "\r\n" . EMAIL_TEXT_CUSTOMER_COUNTRY . ' ' . $country;

  if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_OWNER_SUBJECT, $owners_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
 }

 // EOF multimixer

 

3) In file catalog/includes/laguages/yourlanguage/create_account.php

 

Put before the end

// mm 24.6.09
define('EMAIL_OWNER_SUBJECT', 'New registration' );
define('EMAIL_TEXT_OWNER_INFO', 'New customer registration, find details below:');
define('EMAIL_TEXT_CUSTOMER_NAME', 'Name:' );
define('EMAIL_TEXT_CUSTOMER_EMAIL', 'email:' );
define('EMAIL_TEXT_CUSTOMER_PHONE', 'Phone:' );
define('EMAIL_TEXT_CUSTOMER_ADDRESS', 'Address:');
define('EMAIL_TEXT_CUSTOMER_CITY', 'City:' );
define('EMAIL_TEXT_CUSTOMER_STATE', 'State:');
define('EMAIL_TEXT_CUSTOMER_COUNTRY', 'Country:');

This will send an email to the additional email as set in admin for every new customer registration.

 

Because you don't want to read each time the "hello bla bla" text that the customer receives, it contains just the useful information, name, email etc

 

 

Hi,

Just what I was looking for, however I do have a small problem, the name didnt show in the email, but everything else did.

 

Any ideas, I have uhtml emails installed.

 

Thanks


Getting better with mods but no programmer am I.

Share this post


Link to post
Share on other sites

If you want to disable the email send to a customer when he makes an order (order confirmation email) then the admin/orders.php is the WRONG place to do it.

 

The mail is getting generated in checkout_process.php

 

Find the line

tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

 

And comment t out with //

Hi multimixer,

I've commented out the line in the catalog/checkout_process.php file, but I'm still getting two emails with the subject "Order Process" (one sent to the store owner and the other one to the customer). The "Order Process" email needs to be sent to the store owner only. Are there other files that need to be modified so that only the store owner receives the "Order Process" email? Thanks in advance.

Share this post


Link to post
Share on other sites

Hi,

Just what I was looking for, however I do have a small problem, the name didnt show in the email, but everything else did.

 

Any ideas, I have uhtml emails installed.

 

Thanks

 

 

I am struggling with this the name is not showing on the emails but everything else is.

 

Note the uhtml email only sent to customer, the new order details are sent to the store admin/ other email.

 

Now having played around I am guessing the reason is to do with how the name variable is handled but dont know how to ressolve it.

 

heres my checkout_process.php code

 

<?php
/*
 $Id: checkout_process.php 1750 2007-12-21 05:20:28Z hpdl $
 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com
 Copyright (c) 2007 osCommerce
 Released under the GNU General Public License
*/
 include('includes/application_top.php');
//print "<pre>";print_r($_SESSION);exit;

// if the customer is not logged on, redirect them to the login page
 if (!tep_session_is_registered('customer_id') && !tep_session_is_registered('createAccount')) {
   $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
   tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
 }
// if there is nothing in the customers cart, redirect them to the shopping cart page
 if ($cart->count_contents() < 1) {
   tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
 }
// if no shipping method has been selected, redirect the customer to the shipping method selection page
 if (!tep_session_is_registered('shipping') || !tep_session_is_registered('sendto')) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
 }
 if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}
// avoid hack attempts during the checkout procedure by checking the internal cartID
 if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
   if ($cart->cartID != $cartID) {
     tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
   }
 }
 include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);
// load selected payment module
 require(DIR_WS_CLASSES . 'payment.php');
 // Line Added - MOD: CREDIT CLASS Gift Voucher Contribution
 $payment_method = $payment;
 if ($credit_covers) $payment='';

 $payment_modules = new payment($payment);
// load the selected shipping module
 require(DIR_WS_CLASSES . 'shipping.php');
 $shipping_modules = new shipping($shipping);
 require(DIR_WS_CLASSES . 'order.php');
 $order = new order;
/* One Page Checkout - BEGIN */ 
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     require('includes/classes/onepage_checkout.php');
     $onePageCheckout = new osC_onePageCheckout();
 }
/* One Page Checkout - END */ 
/* One Page Checkout - BEGIN */
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $onePageCheckout->loadSessionVars('process');
 }
/* One Page Checkout - END */

//print_r($_POST);exit;
if (@$_POST["cot_gv"]=="on")
{
$credit_covers=$cot_gv=1;
tep_session_register("credit_covers");
tep_session_register("cot_gv");
}

 require(DIR_WS_CLASSES . 'order_total.php');
 $order_total_modules = new order_total;



       $order_totals = $temp=$order_total_modules->process();
//print($order_total_modules->output());exit;
       $temp=$temp[count($temp)-1];
       $temp=$temp['value'];
       $total = $ot_gv->get_order_total();

       $gv_query = tep_db_query("select amount from " . TABLE_COUPON_GV_CUSTOMER . " where customer_id = '" . $customer_id . "'");
       $gv_result = tep_db_fetch_array($gv_query);
if ($total>0 && $payment_method == "cot_gv")
{
    tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
}

// Stock Check
 $any_out_of_stock = false;
 if (STOCK_CHECK == 'true') {
   for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
     if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) {
       $any_out_of_stock = true;
     }
   }
   // Out of Stock
   if ( (STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true) ) {
     tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
   }
 }
 $payment_modules->update_status();
if ($payment_method!="cot_gv")
{
 if ( ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
 }
}
//  $order_totals = $order_total_modules->process();
// load the before_process function from the payment modules
 $payment_modules->before_process();
 $sql_data_array = array('customers_id' => $customer_id,
                         'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
                         'customers_company' => $order->customer['company'],
                         'customers_street_address' => $order->customer['street_address'],
                         'customers_suburb' => $order->customer['suburb'],
                         'customers_city' => $order->customer['city'],
                         'customers_postcode' => $order->customer['postcode'], 
                         'customers_state' => $order->customer['state'], 
                         'customers_country' => $order->customer['country']['title'], 
                         'customers_telephone' => $order->customer['telephone'], 
                         'customers_email_address' => $order->customer['email_address'],
                         'customers_address_format_id' => $order->customer['format_id'], 
                         'delivery_name' => trim($order->delivery['firstname'] . ' ' . $order->delivery['lastname']),
                         'delivery_company' => $order->delivery['company'],
                         'delivery_street_address' => $order->delivery['street_address'], 
                         'delivery_suburb' => $order->delivery['suburb'], 
                         'delivery_city' => $order->delivery['city'], 
                         'delivery_postcode' => $order->delivery['postcode'], 
                         'delivery_state' => $order->delivery['state'], 
                         'delivery_country' => $order->delivery['country']['title'], 
                         'delivery_address_format_id' => $order->delivery['format_id'], 
                         'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'], 
                         'billing_company' => $order->billing['company'],
                         'billing_street_address' => $order->billing['street_address'], 
                         'billing_suburb' => $order->billing['suburb'], 
                         'billing_city' => $order->billing['city'], 
                         'billing_postcode' => $order->billing['postcode'], 
                         'billing_state' => $order->billing['state'], 
                         'billing_country' => $order->billing['country']['title'], 
                         'billing_address_format_id' => $order->billing['format_id'], 
                         'payment_method' => $order->info['payment_method'], 
                         'shipping_module' => $shipping['id'],
                         'cc_type' => $order->info['cc_type'],
                         'cc_owner' => $order->info['cc_owner'], 
                         'cc_number' => $order->info['cc_number'], 
                         'cc_expires' => $order->info['cc_expires'], 
                         'date_purchased' => 'now()', 
                         'orders_status' => $order->info['order_status'], 
                         'currency' => $order->info['currency'], 
                         'currency_value' => $order->info['currency_value']);
 tep_db_perform(TABLE_ORDERS, $sql_data_array);
 $insert_id = tep_db_insert_id();
/*// {{ buySAFE Module
 $buysafe_cart_id = MODULE_BUYSAFE_BUYSAFE_CART_PREFIX . '-' . tep_session_id() . (tep_count_customer_orders()-1);
 $checkout_params = array('WantsBond' => ($WantsBond ? $WantsBond : 'false'), 'orders_id' => $insert_id, 'buysafe_cart_id' => $buysafe_cart_id);
 $checkout_result = $buysafe_module->call_api('SetShoppingCartCheckout', $checkout_params);
 if (is_array($checkout_result) && $checkout_result['IsBuySafeEnabled'] == 'true')
 {
   $update_data_array = array('buysafe_cart_id' => $buysafe_cart_id,
                              'buysafe_client_ip' => tep_get_ip_address(),
                              'buysafe_session_id' => tep_session_id());
   tep_db_perform(TABLE_ORDERS, $update_data_array, 'update', "orders_id = '" . (int)$insert_id . "'");
 }
 */
// }}  
 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
   $sql_data_array = array('orders_id' => $insert_id,
                           'title' => $order_totals[$i]['title'],
                           'text' => $order_totals[$i]['text'],
                           'value' => $order_totals[$i]['value'], 
                           'class' => $order_totals[$i]['code'], 
                           'sort_order' => $order_totals[$i]['sort_order']);
   tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
 }
 $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';
 $sql_data_array = array('orders_id' => $insert_id, 
                         'orders_status_id' => $order->info['order_status'], 
                         'date_added' => 'now()', 
                         'customer_notified' => $customer_notification,
                         'comments' => $order->info['comments']);
 tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);
// enter info into coupons table
 if (tep_session_is_registered('coupon_id')) {
     $sql_data_array = array('coupon_id' => $coupon_id,
                             'customer_id' => $customer_id,
                             'order_id' => $insert_id,
                             'redeem_date' => 'now()');
     tep_db_perform(TABLE_COUPONS_TO_CUSTOMER, $sql_data_array);
 }
// initialized for the email confirmation
 $products_ordered = '';
 $subtotal = 0;
 $total_tax = 0;
 for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
// Stock Update - Joao Correia
   if (STOCK_LIMITED == 'true') {
     if (DOWNLOAD_ENABLED == 'true') {
       $stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename 
                           FROM " . TABLE_PRODUCTS . " p
                           LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                            ON p.products_id=pa.products_id
                           LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                            ON pa.products_attributes_id=pad.products_attributes_id
                           WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
       $products_attributes = $order->products[$i]['attributes'];
       if (is_array($products_attributes)) {
         $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
       }
       $stock_query = tep_db_query($stock_query_raw);
     } else {
       $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
     }
     if (tep_db_num_rows($stock_query) > 0) {
       $stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
       if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
         $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
       } else {
         $stock_left = $stock_values['products_quantity'];
       }
       tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
       if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
         tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
       }
     }
   }
// Update products_ordered (for bestsellers list)
   tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
   $sql_data_array = array('orders_id' => $insert_id, 
                           'products_id' => tep_get_prid($order->products[$i]['id']), 
                           'products_model' => $order->products[$i]['model'], 
                           'products_name' => $order->products[$i]['name'], 
                           'products_price' => $order->products[$i]['price'], 
                           'final_price' => $order->products[$i]['final_price'], 
                           'products_tax' => $order->products[$i]['tax'], 
                           'products_quantity' => $order->products[$i]['qty']);
   tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
   $order_products_id = tep_db_insert_id();

// Start - CREDIT CLASS Gift Voucher Contribution
// CCGV 5.19 Fix for GV Queue with Paypal IPN
 $order_total_modules->update_credit_account($i,$insert_id);
// End - CREDIT CLASS Gift Voucher Contribution

//------insert customer choosen option to order--------
   $attributes_exist = '0';
   $products_ordered_attributes = '';
   if (isset($order->products[$i]['attributes'])) {
     $attributes_exist = '1';
     for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
       if (DOWNLOAD_ENABLED == 'true') {
         $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename 
                              from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa 
                              left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                               on pa.products_attributes_id=pad.products_attributes_id
                              where pa.products_id = '" . $order->products[$i]['id'] . "' 
                               and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' 
                               and pa.options_id = popt.products_options_id 
                               and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' 
                               and pa.options_values_id = poval.products_options_values_id 
                               and popt.language_id = '" . $languages_id . "' 
                               and poval.language_id = '" . $languages_id . "'";
         $attributes = tep_db_query($attributes_query);
       } else {
         $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
       }
       $attributes_values = tep_db_fetch_array($attributes);
       $sql_data_array = array('orders_id' => $insert_id, 
                               'orders_products_id' => $order_products_id, 
                               'products_options' => $attributes_values['products_options_name'],
                               'products_options_values' => $attributes_values['products_options_values_name'], 
                               'options_values_price' => $attributes_values['options_values_price'], 
                               'price_prefix' => $attributes_values['price_prefix']);
       tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);
       if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
         $sql_data_array = array('orders_id' => $insert_id, 
                                 'orders_products_id' => $order_products_id, 
                                 'orders_products_filename' => $attributes_values['products_attributes_filename'], 
                                 'download_maxdays' => $attributes_values['products_attributes_maxdays'], 
                                 'download_count' => $attributes_values['products_attributes_maxcount']);
         tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
       }
       $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
     }
   }
//------insert customer choosen option eof ----
   $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
   $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
   $total_cost += $total_products_price;
   $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
 }

// Line Added - MOD: CREDIT CLASS Gift Voucher Contribution
 $order_total_modules->apply_credit();

// lets start with the email confirmation
//---  Beginning of addition: Ultimate HTML Emails  ---//
if (EMAIL_USE_HTML == 'true') {
//	$order = new order($insert_id);
require(DIR_WS_MODULES . 'UHtmlEmails/'. ULTIMATE_HTML_EMAIL_LAYOUT .'/checkout_process.php');
$email_order = $html_email;
}else{//Send text email
//---  End of addition: Ultimate HTML Emails  ---//
 $email_order = STORE_NAME . "\n" . 
                EMAIL_SEPARATOR . "\n" . 
                EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
                EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
                EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
 if ($order->info['comments']) {
   $email_order .= tep_db_output($order->info['comments']) . "\n\n";
 }
 $email_order .= EMAIL_TEXT_PRODUCTS . "\n" . 
                 EMAIL_SEPARATOR . "\n" . 
                 $products_ordered . 
                 EMAIL_SEPARATOR . "\n";
 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
   $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }
/* One Page Checkout - BEGIN */
 $sendToFormatted = tep_address_label($customer_id, $sendto, 0, '', "\n");
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $sendToFormatted = $onePageCheckout->getAddressFormatted('sendto');
 }
 $billToFormatted = tep_address_label($customer_id, $billto, 0, '', "\n");
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $billToFormatted = $onePageCheckout->getAddressFormatted('billto');
 }
/* One Page Checkout - END */
 if ($order->content_type != 'virtual') {
   $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . 
                   EMAIL_SEPARATOR . "\n" .
                   $sendToFormatted . "\n";
 }
 $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .
                 EMAIL_SEPARATOR . "\n" .
                 $billToFormatted . "\n";
 if (is_object($$payment)) {
   $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . 
                   EMAIL_SEPARATOR . "\n";
   $payment_class = $$payment;
   $email_order .= $order->info['payment_method'] . "\n\n";
   if ($payment_class->email_footer) { 
     $email_order .= $payment_class->email_footer . "\n\n";
   }
 }
//---  Beginning of addition: Ultimate HTML Emails  ---//
}
if(ULTIMATE_HTML_EMAIL_DEVELOPMENT_MODE === 'true'){
//Save the contents of the generated html email to the harddrive in .htm file. This can be practical when developing a new layout.
$TheFileName = 'Last_mail_from_checkout_process.php.htm';
$TheFileHandle = fopen($TheFileName, 'w') or die("can't open error log file");
fwrite($TheFileHandle, $email_order);
fclose($TheFileHandle);
}


//---  End of addition: Ultimate HTML Emails  ---/
 // BEGIN added for pdfinvoice email attachment:
   if (PDF_INVOICE_EMAIL_ATTACHMENT == 'true' && $customer_id && $customer_id!="temp_user") {
       // customers will be logged in so usual security checks of pdfinvoice.php will be met. All we do is set the order_id for pdfinvoice.php to pick up
       $HTTP_GET_VARS['order_id'] = $insert_id;
       // set stream mode
       $stream = true;
       // include pdfinvoice.php
//print "<pre>";print_r($_SESSION);exit;
       include_once(FILENAME_CUSTOMER_PDF);
       // add text to email informing customer a pdf invoice copy has been attached:
       $email_order .= PDF_INVOICE_ATTACHED ."\n\n";
       // send email with pdf invoice attached. Check to make sure pdfinvoice.php returns some data, else send standard email
       // note $order object reinstantiated by inclusion of pdfinvoice.php hence customer['name']
       if (tep_not_null($pdf_data)) {
           tep_mail_string_attachment($order->customer['name'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, $pdf_data, $file_name);
       } else {
           tep_mail($order->customer['name'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
       }
   } else {
       // send vanilla e-mail - if email attachment option is false
       tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
   }



   // END added for pdfinvoice email attachment:
   // send emails to other people
 // BOF Multimixer 25.6.2009. send emails to other people

 $email_store .= STORE_NAME . "\n" . 
                                 EMAIL_TEXT_STORE_INTRO . "\n" . 
                                 EMAIL_SEPARATOR . "\n" . 
                                 EMAIL_TEXT_STORE_CUSTOMER . ' ' . $order->customer['firstname'] . ' ' . $order->customer['lastname'] . "\n".
                                 EMAIL_TEXT_CUSTOMER_ID . ' ' . $customer_id . "\n" .
                                 EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
                                 EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
                                 EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";

 $email_store .= EMAIL_TEXT_PRODUCTS . "\n" . 
                                 EMAIL_SEPARATOR . "\n" . 
                                 $products_ordered . 
                                 EMAIL_SEPARATOR . "\n";

 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
       $email_store .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }

 if ($order->content_type != 'virtual') {
       $email_store .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . 
                                       EMAIL_SEPARATOR . "\n" .
                                       tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
 }

 $email_store .= EMAIL_TEXT_CUSTOMER_TELEPHONE . ' ' . $order->customer['telephone'] . "\n";
 $email_store .= EMAIL_TEXT_CUSTOMER_MAIL . ' ' . $order->customer['email_address']. "\n\n";


 $email_store .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .
                                 EMAIL_SEPARATOR . "\n" .
                                 tep_address_label($customer_id, $billto, 0, '', "\n") . "\n";

 $email_store .= EMAIL_TEXT_CUSTOMER_TELEPHONE . ' ' . $order->customer['telephone'] . "\n";
 $email_store .= EMAIL_TEXT_CUSTOMER_MAIL . ' ' . $order->customer['email_address']. "\n\n";

 if (is_object($$payment)) {
       $email_store .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . 
                                       EMAIL_SEPARATOR . "\n";
       $payment_class = $$payment;
       $email_store .= $order->info['payment_method'] . "\n\n";
       if ($payment_class->email_footer) { 
         $email_store .= $payment_class->email_footer . "\n\n";
       }
 }
 if ($order->info['comments']) {
       $email_store .= EMAIL_TEXT_CUSTOMERS_COMMENT . "\n".
                                       EMAIL_SEPARATOR . "\n".
                                       tep_db_output($order->info['comments']) . "\n\n";
 }



 if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
       tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_STORE_SUBJECT, $email_store, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
 }

 //EOF
// Include OSC-AFFILIATE 
 require(DIR_WS_INCLUDES . 'affiliate_checkout_process.php');
// load the after_process function from the payment modules
 $payment_modules->after_process();
// remove items from wishlist if customer purchased them
 $wishList->clear();
$cart->reset(true);
/* One Page Checkout - BEGIN */
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $_SESSION['onepage']['info']['order_id'] = $insert_id;
 }
/* One Page Checkout - END */
// unregister session variables used during checkout
 tep_session_unregister('sendto');
 tep_session_unregister('billto');
 tep_session_unregister('shipping');
 tep_session_unregister('payment');
 tep_session_unregister('comments');

// Start - CREDIT CLASS Gift Voucher Contribution
 if(tep_session_is_registered('credit_covers')) tep_session_unregister('credit_covers');
 $order_total_modules->clear_posts();
// End - CREDIT CLASS Gift Voucher Contribution
/* 
// {{ buySAFE Module
 tep_session_unregister('WantsBond');
// }}
// unregister any coupons
 tep_session_unregister('coupon_code');
 tep_session_unregister('coupon_amount');
 tep_session_unregister('coupon_type');
 tep_session_unregister('coupon_id');
 */
 tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
 require(DIR_WS_INCLUDES . 'application_bottom.php');
?>


Getting better with mods but no programmer am I.

Share this post


Link to post
Share on other sites

Hello, I'm new to osCommerce and php.

 

I just wanna know how to add separate extra line in the email Order Process such as Bank Account Number, Store Owner Name etc (i have to use offline payment method for my store). I've already tried <p> </br> in /includes/languages/english/checkout_process.php but it doesn't work. Extra text got wrap up.

 

Great addons btw.

Share this post


Link to post
Share on other sites

Hi Sirs,

 

I'm from Brazil and I've a problem in the sent mails with UTHML, the are comming all messy like uncorrect charset configuration, but the charset configuration its OK and the "Use MIME HTML When Sending Emails" option is true, so the problem must be another one.

 

Here is an example of mail through "Tell a Friend" function:

 

--=_bbcce45d8fab9a73f0595d1101afeb8b Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: 7bit
Hello João da Silva!Mateus Belluzzo think you will like of this product of MY SITE.Comments:Muito bonito! To see the product just
click in the link bellow or copy and paste in your web navegator:http://www.mysite.com.br/loja/product_info.php?products_id=230
Att,MY SITEhttp://www.mysite.com.br --=_bbcce45d8fab9a73f0595d1101afeb8b Content-Type: text/html; charset="iso-8859-1" Content-
Transfer-Encoding: quoted-printable 
Hello&= aacute; Jo=E3o da Silva!
Mateus Belluzzo think you will lik= e of this product of MY SITE.


Comme= nts:
Muito Boni=T3o!

To see the product just click in the li= nk bellow or copy and paste in your web navegator:
http://www.my= site.com.br/loja/product_info.php?products_id=3D230

A= tt,
MY SITE
http://www.my= site.com.br
--=_bbcce45d8fab9a73f0595d1101afeb8b-- 

 

 

Can someone help me with this please?

 

Thanks and kindly regards,

 

Mateus Belluzzo

Brazil

Share this post


Link to post
Share on other sites

Hi! i have installed onepage and everythings works well, but yesterday the 12th customer who checkout get a error when he attemps to enter his email address, here the message that he got: there was a error checking email address,please inform it web expert about this error.

it also appear that when they try to enter their address or zip^code they also get error message like : there was a error updating your billing address,please inform it web expert about this error. now the one page contribution doesn't work anymore! Can someone help? who have this error before!

Share this post


Link to post
Share on other sites

Hi

 

I need to add extra imput fields to the contact_us.php, I did as you instructed adding the phone field to the page.

When I receive the form in my email there is no phone entry at all, just plain'old name, email and inquiry (body) message.. but the phone field doesn't get captured by the script..

 

Could you tell me what's wrong? I grabbed the standard contact_us page, no modifications, and then inserted your code. Customer can fill the field in but I dont see it when I get the email.

 

Thanks!

Share this post


Link to post
Share on other sites

Can you post your file?

 

I´m sorry, I have uploaded the wrong file: For testing purposes, I created a modified contact_us2.php without fist deleting the original, causing the non-altered script to do the work (form action was using the old one). Now that I'm using your modified script it all works like a charm.

 

Thanks!

Share this post


Link to post
Share on other sites

I had the same problems like your ... a new customer don't receive the welcome email but I can send emails from the send email page in tools. I modified some variables on my WHM but nothing happens. So, I decided to use smtp like a E-Mail Transport Method on my Configuration -> E-mail Options and now I receive all necessary emails.

My server config infos:

HTTP Server: Apache/2.2.10 (Unix) mod_ssl/2.2.10 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6

PHP Version: 5.2.6 (Zend: 2.2.0)

MySQL 5.0.81-community

My site is:www.all-bijoux.ro

Share this post


Link to post
Share on other sites

Can you post your file?

 

My customers as well as myself are not receiving emails indicating what they ordered/confirmation of the order. It was working at one time but now it's not.

Can you help me out with this.

Share this post


Link to post
Share on other sites

hello all

 

how can i configure email register confirmation to send username and his password on registration......

 

 

on create_account.php i have this...

 

define('EMAIL_SUBJECT', 'welcome to' . STORE_NAME);

define('EMAIL_GREET_MR', 'Dl. %s,' . "\n\n");

define('EMAIL_GREET_MS', 'Dna. %s,' . "\n\n");

define('EMAIL_GREET_NONE', 'Dear %s' . "\n\n");

define('EMAIL_WELCOME', 'We welcome you to <b>' . STORE_NAME . '</b>.' . "\n\n");

define('EMAIL_TEXT', 'You can now take part in the <b>various services</b> we have to offer you. Some of these services include:' . "\n\n" . '<li><b>Permanent Cart</b> - Any products added to your online cart remain there until you remove them, or check them out.' . "\n" . '<li><b>Address Book</b> - We can now deliver your products to another address other than yours! This is perfect to send birthday gifts direct to the birthday-person themselves.' . "\n" . '<li><b>Order History</b> - View your history of purchases that you have made with us.' . "\n" . '<li><b>Products Reviews</b> - Share your opinions on products with our other customers.' . "\n\n");

define('EMAIL_CONTACT', 'For help with any of our online services, please email the store-owner: ' . STORE_OWNER_EMAIL_ADDRESS . '.' . "\n\n");

define('EMAIL_WARNING', '<b>Note:</b> This email address was given to us by one of our customers. If you did not signup to be a member, please send an email to ' . STORE_OWNER_EMAIL_ADDRESS . '.' . "\n");

?>

 

 

but i want that user recive his password at least something like your login is: username: his email password: his password

Share this post


Link to post
Share on other sites

how can i configure email register confirmation to send username and his password on registration......

 

Thats not hard to do since all necessary info exist already, you need just to put it into the email. You have already $password (thats obviously the customers password) and $email_address (customers email)

 

1) open file catalog/create_account.php

 

I would put the additional info it in that way into $email_text

      $email_text .= EMAIL_WELCOME . EMAIL_TEXT_LOGIN . ' ' . $email_address .  "\r\n" . EMAIL_TEXT_PASSWORD . ' ' . $password .  "\r\n\n" . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;

 

If you have made the changes to receive an email too when the customer register (as described here) and you want to receive customers password too then you change the $owners_text as follows

	  $owners_text = EMAIL_TEXT_OWNER_INFO . "\r\n\n" .EMAIL_TEXT_CUSTOMER_NAME . ' ' . $name . "\r\n" . EMAIL_TEXT_CUSTOMER_EMAIL . ' ' .  $email_address . "\r\n" . EMAIL_TEXT_CUSTOMER_PHONE . ' ' . $telephone . "\r\n" . EMAIL_TEXT_CUSTOMER_ADDRESS . ' ' . $street_address . "\r\n" . EMAIL_TEXT_CUSTOMER_CITY . ' ' . $city . "\r\n" . EMAIL_TEXT_CUSTOMER_STATE . ' ' . $state . "\r\n" . EMAIL_TEXT_CUSTOMER_COUNTRY . ' ' . $country . "\r\n" . EMAIL_TEXT_PASSWORD . ' ' . $password;

 

2) Open file catalog/includes/languages/yourlanguage/create account.php

 

Add 2 more language definitions as follows

define('EMAIL_TEXT_LOGIN', 'Your username is:');
define('EMAIL_TEXT_PASSWORD', 'Your password is:');

 

Not to mention to do a backup of your files BEFORE you start to do any changes

Share this post


Link to post
Share on other sites

I worked out some solutions for mails, they are already posted all around the forum, now I want to share them in a organized way. I hope somebody will find this useful.

 

A. How to get a notification when a person register.

 

1) Set up the "extra order emails" feature in Admin/my store

 

2) In file catalog/create_account.php

 

Find the lines

email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;
  tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

 

Place after

 // BOF multimixer 24.6.2009 send emails to other people
  $owners_text = EMAIL_TEXT_OWNER_INFO . "\r\n" .EMAIL_TEXT_CUSTOMER_NAME . ' ' . $name . "\r\n" . EMAIL_TEXT_CUSTOMER_EMAIL . ' ' .  $email_address . "\r\n" . EMAIL_TEXT_CUSTOMER_PHONE . ' ' . $telephone . "\r\n" . EMAIL_TEXT_CUSTOMER_ADDRESS . ' ' . $street_address . "\r\n" . EMAIL_TEXT_CUSTOMER_CITY . ' ' . $city . "\r\n" . EMAIL_TEXT_CUSTOMER_STATE . ' ' . $state . "\r\n" . EMAIL_TEXT_CUSTOMER_COUNTRY . ' ' . $country;

  if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_OWNER_SUBJECT, $owners_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
 }

 // EOF multimixer

 

3) In file catalog/includes/laguages/yourlanguage/create_account.php

 

Put before the end

// mm 24.6.09
define('EMAIL_OWNER_SUBJECT', 'New registration' );
define('EMAIL_TEXT_OWNER_INFO', 'New customer registration, find details below:');
define('EMAIL_TEXT_CUSTOMER_NAME', 'Name:' );
define('EMAIL_TEXT_CUSTOMER_EMAIL', 'email:' );
define('EMAIL_TEXT_CUSTOMER_PHONE', 'Phone:' );
define('EMAIL_TEXT_CUSTOMER_ADDRESS', 'Address:');
define('EMAIL_TEXT_CUSTOMER_CITY', 'City:' );
define('EMAIL_TEXT_CUSTOMER_STATE', 'State:');
define('EMAIL_TEXT_CUSTOMER_COUNTRY', 'Country:');

This will send an email to the additional email as set in admin for every new customer registration.

 

Because you don't want to read each time the "hello bla bla" text that the customer receives, it contains just the useful information, name, email etc

 

This is a great thread! Thanks. I can't work out why the first email mod is not working for me. I have installed those small bits of code, but still nothing. No errors or anything, just no email when testing. Could something be the cause of it?

Share this post


Link to post
Share on other sites

This is a great thread! Thanks. I can't work out why the first email mod is not working for me. I have installed those small bits of code, but still nothing. No errors or anything, just no email when testing. Could something be the cause of it?

 

Did you entered an email address into thr field "send extra order emails to" in admin? Do you receive new order emails?

Share this post


Link to post
Share on other sites

×