Post by OpDev » Thu Jul 24, 2014 6:31 pm

Όταν γίνεται μία παραγγελία το email που πάει στον πελάτη θέλω να έχει Cc και ένα ακόμα email.

Ακολούθησα τις οδηγίες από αυτό το http://sankartypo3.wordpress.com/2013/0 ... -in-mails/ κάνοντας όπου χρειάζεται αλλαγές.

Για την αποστολή χρησιμοποιώ smtp.
Το email φεύγει κανονικά και μάλιστα εμφανίζει και ως cc το email που έχω βάλει, όμως ποτέ δε φτάνει το email στην cc διεύθυνση.

Αν αντί για smtp βάλω mail το email φεύγει κανονικά(και cc) αλλα το πρόβλημα είναι οτι αν το email είναι εκτός απο της διεύθυνσης του server τότε κόβεται ως spam απο τον ίδιο τον server.

πχ "mail"
Send mail to mycustomer@gmail.com with cc info@myshop.gr
Το email έρχεται στο info αλλα κόβεται σαν spam απο το server και δε πάει στο @gmail( Αυτός είναι και ο λόγος που χρησιμοποιώ smtp)

πχ "smtp"
Send mail to mycustomer@gmail.com with cc info@myshop.gr
Το email πηγαίνει στο πελάτη και εμφανίζεται και κάτω το Cc info@myshop.gr . Όμως ποτέ δε λαμβάνω αυτό το email στο info.

Καμιά ιδέα;

New member

Posts

Joined
Sun Jul 21, 2013 2:32 pm

Post by People's Code » Fri Jul 25, 2014 2:17 pm

Καλημέρα

Έμπειρος χρήστης είσαι, να υποθέσω ότι έχεις τους λόγους σου και δεν θέλεις να χρησιμοποιήσεις το πεδίο "Additional Alert E-Mails:" που κάνει ακριβώς το ίδιο με το CC...

Σχετικά με τον κώδικα που πόσταρες με μία πρώτη ματιά δεν βλέπω κάτι λάθος - εκτός βέβαια από το ότι δεν χρησιμοποιεί $this->newline; για να είναι συμβατό με όλα τα λειτουργικά, επίσης εννοείται ότι δεν χρειαζόσουν όλον αυτόν τον κώδικα για να προσθέσεις ένα απλό CC στο header.

Σου προτείνω μία πιο απλή λύση που 99% θα δουλέψει όπως το θες με πρωτόκολλο mail :
Στο system/library/mail.php μετά την γραμμή 79
το:

Code: Select all

		if (is_array($this->to)) {
			$to = implode(',', $this->to);
		} else {
			$to = $this->to;
		}
το κάνεις:

Code: Select all

		if (is_array($this->to)) {
			$to = implode(',', $this->to);
		} else {
			$to = $this->to;
		}
      $to .= ',info@myshop.gr';

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by OpDev » Fri Jul 25, 2014 4:28 pm

Λόγο απαίτησης μόνο σε συγκεκριμένες παραγγελίες πρέπει να υπάρχει το Cc και όχι γενικά και επίσης το "Additional Alert E-Mails:" αποστέλλει την ειδοποίηση που πηγαίνει στον admin(εκείνο το plan text ) και όχι αυτό που πηγαίνει στον πελάτη >:D

Τώρα το θέμα αν χρησιμοποιήσω την "mail" μου κόβει την αποστολή σε εξωτερικά domain(εκτός server like @gmail,@yahoo)
γιαυτό και χρησιμοποιώ την επιλογή για smtp.

Δε μπόρεσα να προσθέσω το cc πεδίο και να το κάνω να δουλέψει.

Προσωρινά τροποποίησα το http://www.opencart.com/index.php?route ... on_id=6371

New member

Posts

Joined
Sun Jul 21, 2013 2:32 pm

Post by botonakis » Mon Jul 28, 2014 4:04 pm

Εγώ πάντως μέσω του extension που αναφέρει ο OpDev θα το έκανα.
Γενικά όμως, εάν έκανες ένα vqmod στο: catalog/model/checkout/order.php

και στη γραμμή:

Code: Select all

$template->data['email'] = $order_info['email'];
πρόσθετες με κόμμα (,) το email που θέλεις, δε θα έκανε cc αλλά θα έστελνε το ίδιο email και στον πελάτη και στο email που θέλεις. Αφού δεν είναι bcc, έτσι και αλλιώς θα το βλέπει ο πελάτης.

User avatar
Active Member

Posts

Joined
Tue Jan 24, 2012 7:55 pm
Location - Athens, Greece

Post by People's Code » Tue Jul 29, 2014 5:49 pm

Καλημέρα

@OpDev
Αυτό που σου πρότεινα προηγουμένως βασίζεται στην ίδια λογική με το vQmod που χρησιμοποιείς. Δηλαδή αντί για CC χρησιμοποιείς το $to και του ορίζεις ότι email θες ή του προσθέτεις επιπλέον emails. Επειδή αρχικά δεν είχες αναφέρει τις προϋποθέσεις που ανέφερες στο δεύτερο post, για αποστολή html emails με SMTP και αποστολή επιπλέον html email υπό προϋποθέσεις, εγώ θα το έκανα ως εξής:

Στο catalog/model/checkout/order.php γραμμή 567
το

Code: Select all

$mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
το κάνεις

Code: Select all

$mail->setHtml($html);
//$mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
Έτσι θα στέλνει στον admin html email

Παρακάτω στη γραμμή 570 το

Code: Select all

// Send to additional alert emails
$emails = explode(',', $this->config->get('config_alert_emails'));
το κάνεις:

Code: Select all

       
// Send to additional alert emails
if ($order_info && $order_info['shipping_country_id'] == 84) { // κάποιο τυχαίο condition
    $emails = explode(',', $this->config->get('config_alert_emails'));
} else {
    $emails = '';
}
- Στις ρυθμίσεις του Opencart στο "Additional Alert E-Mails:", ορίζεις όσα επιπλέον emails θέλεις και θα αποστέλλεται σε αυτά html email.
- Στο condition "if ($order_info && $order_info['shipping_country_id'] == 84) {" θα ορίσεις το condition που θες εσύ να εξετάζεται για το αν θα αποστέλλονται σε επιπλέον emails για τη συγκεκριμένη παραγγελία. Στη συγκεκριμένη περίπτωση φεύγει επιπλέον email αν ο πελάτης διαλέξει χώρα αποστολής Ελλάδα.

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by botonakis » Tue Jul 29, 2014 5:54 pm

OpenCart-Hellas,
σε ευχαριστώ και εγώ για την απάντηση αυτή, γιατί μου έλυσες μια άλλη απορία που είχα πρόσφατα με κάποιον πελάτη.

User avatar
Active Member

Posts

Joined
Tue Jan 24, 2012 7:55 pm
Location - Athens, Greece

Post by gkasios » Tue Aug 05, 2014 7:14 am

Καλημέρα

πριν μερικές μέρες ανεβάσαμε ένα νέο δωρεάν Extension που κάνει περίπου αυτό που θέλεις.

http://www.opencart.com/index.php?route ... n_id=18114

Our Extensions


User avatar
New member

Posts

Joined
Tue Jan 08, 2013 1:57 am

Who is online

Users browsing this forum: No registered users and 3 guests