Modul erstellt: BCC von Shop-Mails an mich und AGB als PDF mitschicken

Hallo popkopff !
Nachfolgend der Schnippsel, so wie ich ihn in der CE 4.5.5_40299 verwende und der auch rund läuft. Beachte bitte die Infos im Code.


<?php

/* 
* http://www.oxid-esales.com/forum/showthread.php?t=1248&page=2#post70936
* http://www.oxid-esales.com/forum/showthread.php?t=1248#post72067
* Dateiname: myemail.php
* im System anmelden:
* Stammdaten -> Grundeinstellungen -> System -> Module -> oxemail =>myemail
*/

class myEmail extends myEmail_parent
{
 	// nachfolgend die bcc-mail-Adresse eintragen.
	// Beispiel:
	// protected $bccMailAddress = "[email protected]";
    protected $bccMailAddress = "";
	protected $_blMyNewsletter = false; 
	
	 public function sendNewsletterMail( $oNewsLetter, $oUser, $sSubject = null )
    {
          $this->_blMyNewsletter = true;
          $sRet = parent::sendNewsletterMail( $oNewsLetter, $oUser, $sSubject );

          return $sRet;
    } 
	
    public function send()
    {        
        // BOF BCC to me
		 if(!$this->_blMyNewsletter) {
              $this->setBcc( $this->bccMailAddress , 'Shop_BCC' );
        } 
        // EOF BCC to me
        return parent::send(); 
    }
    
    public function sendOrderEmailToUser( $oOrder, $sSubject = null )
    {
        $myConfig = $this->getConfig();

        // add user defined stuff if there is any
        $oOrder = $this->_addUserInfoOrderEMail( $oOrder );

        $oShop = $this->_getShop();
        $this->_setMailParams( $oShop );

        $oUser = $oOrder->getOrderUser();
        $this->setUser( $oUser );

        // create messages
        $oSmarty = $this->_getSmarty();
        $this->setViewData( "order", $oOrder);

        // Process view data array through oxoutput processor
        $this->_processViewArray();

        $this->setBody( $oSmarty->fetch( $this->_sOrderUserTemplate ) );
        $this->setAltBody( $oSmarty->fetch( $this->_sOrderUserPlainTemplate ) );

        // #586A
        if ( $sSubject === null ) {
            if ( $oSmarty->template_exists( $this->_sOrderUserSubjectTemplate) ) {
                $sSubject = $oSmarty->fetch( $this->_sOrderUserSubjectTemplate );
            } else {
                $sSubject = $oShop->oxshops__oxordersubject->getRawValue()." (Nr. ".$oOrder->oxorder__oxordernr->value.")";
            }
        }

        $this->setSubject( $sSubject );

        $sFullName = $oUser->oxuser__oxfname->getRawValue() . " " . $oUser->oxuser__oxlname->getRawValue();

        $this->setRecipient( $oUser->oxuser__oxusername->value, $sFullName );
        $this->setReplyTo( $oShop->oxshops__oxorderemail->value, $oShop->oxshops__oxname->getRawValue() );

        /* BOF My ADD: AGB per PDF */
        $attachment_path=$myConfig->getLanguageDir(false);
		$a_result= $this->addAttachment( $attachment_path."AGB.pdf" , 'AGB.pdf', 'base64', 'application/pdf');
		// AGB.pdf ist in out/deinTheme/de/
		// auf GROSS- und kleinschreibung achten
        /* EOF My ADD */
        
        $blSuccess = $this->send();

        return $blSuccess;
    }
    
    public function setBcc( $sEmail = null, $sName = null )
    {
        try {
            parent::AddBCC( $sEmail, $sName );
        } catch( Exception $oEx ) {
        }
    }
 
}

Bei Bestellungen wird eine bcc an die einzutragende E-Mail-Adresse mit versandt, beim Newsletterversand wird keine bcc verschickt.

Jetzt kommt kein Fehler mehr vielen Dank… jetzt habe ich bei der bestellung auch eine zweite mail erhalten allerdings nicht bei der registrierung eines neuen kunden muss ich da noch etwas einstellen???

Ok scheint sich erledigt zu haben und zu funktionieren… vielen dank nochmal das macht die arbeit viel viel leichter… greetz patrick

Hallo,
freut mich wenn’s hilft. Ich habe auch nochmals in basic und azure probiert, funktioniert bei beiden.

Ich hole diesen Thread nochmal aus der Versenkung, vielleicht antwortet ja einer :wink:

Verschickt dieses Modul auch bei der Registrierung eines Users eine E-Mail? Das wäre eigentlich das einzige was ich brauche, alle anderen Dinge wie Bestellung etc. bräuchte ich garnicht :slight_smile:

Und ist das auch mit der 4.5.9 (PE) lauffähig?

Danke und Grüße,
jschma

Hi jschma,

das Modul verschickt Kopien von allen eMail, die vom Shopsystem generiert und verschickt werden. Also Registrierungen, Newsletteranmeldungen, Passwortzurücksetzungen und Bestellmails (sowohl die an den Kunden als auch die an den Shop-Betreiber). Einfach alles.

Es ist aber, gem. anderen Nutzern hier im Forum, in den Versionen 4.5.X nicht lauffähig. Da ich bisher die Version 4.4.8 nutze, habe ich es nicht weiter entwickelt. Ich bin aber schon am Vorbereiten für einen Update auf 4.6.X. In diesem Zuge wird auch diese Erweiterung weiterentwickelt. Aus persönlichen Gründen ist damit aber nicht vor der 2. Julihälfte zu rechnen.

OK danke für deine Antwort :slight_smile: Ich bin mir noch nicht sicher ob wir es brauchen, aber falls ja, könnte es mit finanzieller Unterstützung evtl beschleunigt werden? :cool:

Bei mir wird es eher schwer sein (habe bis Mitte Juli noch 3 Klausuren und mein Hauptaugenmerk liegt gerade darin). Ich spiele noch an dem Design rum, in die Funktionalität habe ich in der neuen Version noch keinen Eingriff gemacht. Vielleicht könnte es aber einer, der bereits tiefer in der Materie sitzt anpassen?

[QUOTE=knackig;93722]…
Es ist aber, gem. anderen Nutzern hier im Forum, in den Versionen 4.5.X nicht lauffähig. …[/QUOTE]

Das ist falsch, das Modul funktioniert bestens in 4.5.x und auch 4.6.x. Da sind keine Änderungen erforderlich.
Es werden alle Mails wie von dir beschrieben einwandfrei als bcc versandt, der Anhang der AGB an die Kunden-Bestellmail funktioniert auch.

[QUOTE=nickname;93725]Das ist falsch, das Modul funktioniert bestens in 4.5.x und auch 4.6.x. Da sind keine Änderungen erforderlich.
Es werden alle Mails wie von dir beschrieben einwandfrei als bcc versandt, der Anhang der AGB an die Kunden-Bestellmail funktioniert auch.[/QUOTE]

Aha… und mir wurde vor ein paar Wochen per PN geschrieben, es würde in den neuen Versionen nicht funktionieren. Ich danke Dir für die Info… das nächste Mal werde ich es wohl selber testen müssen, bevor ich solche Infos in die Welt setze :smiley:

Danke funktioniert bei mir auch.

Habe nur eine Frage, kann ich auch zwei Mailadressen angeben?

   // nachfolgend die bcc-mail-Adresse eintragen.
    // Beispiel:
    // protected $bccMailAddress = "[email protected]";
    protected $bccMailAddress = ""; 

Ich fasse es dann mal als nein auf, wäre es dann möglich eine zweite Mail anzugeben wenn ich den ganzen code nochmals kopiere halt nur mit der zweiten Mailadresse?

Guten Morgen,
du könntest auch einfach ein Emailkonto-anlegen, welches die BCC-Mails empfängt und dann an die gewünschten Emailadressen weiterleitet.

[QUOTE=Mannitu;104401]Ich fasse es dann mal als nein auf, wäre es dann möglich eine zweite Mail anzugeben wenn ich den ganzen code nochmals kopiere halt nur mit der zweiten Mailadresse?[/QUOTE]

Guten Morgen,

ich habe es zwar nicht versuchen, das folgende sollte aber funktionieren:


public function send()
    {        
        // BOF BCC to me
        $this->setBcc( $this->bccMailAddress , 'Shop_BCC' );
        $this->setBcc( $this->bccMailAddress2 , 'Shop_BCC2' );
        // EOF BCC to me

        return parent::send(); 
    }

Den Befehl für das hinzufügen der BCC-Adresse noch einmal für die zweite Adresse wiederholen. Diese Vorgehensweise habe ich gerade hier gefunden: http://stackoverflow.com/questions/3149452/php-mailer-multiple-address

Wie geschrieben, habe es nicht getestet, garantiere also keinen Erfolg.

Wo kommt denn setBcc her? So sollte es gehen:

$empfaenger = array(
	   '[email protected]' => 'Empfänger 1',
	   '[email protected]' => 'Empfänger 2',
	   /*...*/
		);
		foreach($empfaenger as $email => $name)
		{
		   $this->AddCC($email, $name);
		}

:wink:

[QUOTE=rubbercut;104453]Wo kommt denn setBcc her?[/QUOTE]

In der gleichen Datei ist noch ist auch noch die folgende Funktion:


public function setBcc( $sEmail = null, $sName = null )
    {
        try {
            parent::AddBCC( $sEmail, $sName );
        } catch( Exception $oEx ) {
        }
    }

Da kommt setBCC her :wink:

Aaahhh, na dann geht`s auch so.

[B]Danke[/B] @knackig funktioniert.
Zweite Mailadresse muss halt nur unter:

   // nachfolgend die bcc-mail-Adresse eintragen.
    // Beispiel:
    // protected $bccMailAddress = "[email protected]";
    protected $bccMailAddress = "[email protected]", protected $bccMailAddress2 = "[email protected]" ;  

angegeben werden.

Hallo

Hat jemand dieses Modul im 4.7 zum laufen gebracht?

Danke und Gruss

[QUOTE=avnikaba;110730]Hallo

Hat jemand dieses Modul im 4.7 zum laufen gebracht?

Danke und Gruss[/QUOTE]

Hier findest Du die neuesten Versionen:

Modul ppg_ordermailattach zum Hinzufügen eines Anhanges und ppg_bccmail für die Kopie. Einfach in den Modul-Ordner kopieren und jeweils die Einstellungen vornehmen. Bei mir auf meinem 4.7.1 Testsystem haben beide Module gut funktioniert.