Neues Modul carbonoxid (BCC an alle Emails anfügen)

Ich habe für den Oxid 6 ein Modul geschrieben, mit dem man im Backend eine Emailadresse speichern kann, an die alle vom Shop versandten Emails in Kopie (BCC) gehen:

Wenn ihr Feedback dazu habt, immer her damit! :slight_smile:

Hauptmotivation war der Lerneffekt für mich - es ist mein erstes “echtes” Oxid 6 Modul, inklusive Kennenlernen von Composer.

Vielleicht kann das ja auch noch jemand anders brauchen. Kann oder sollte ich das Modul irgendwo promoten?

3 Likes

So, im zweiten Anlauf hat es mit der Installation geklappt. Lag an mir, Composer muß man eben auch richtig bedienen.

Danke an @Phillinger fürs Modul und @vanilla_thunder für den Hinweis darauf!

Das Modul hilft beim Anpassen/Kontrollieren von Mails - es macht genau das, was es soll.

Einziger leichter Kritikpunkt: Auch Mails mit dem Link zum zurücksetzen des Passworts oder mit dem Bestätigungslink für den Newsletter und der Newsletter (das könnten bei vielen Newsletterbeziehern seeehr viele Kopien werden) genauso behandelt. Also einfach alle Mails gehen BCC zur hierfür hinterlegten Adresse.
Es bietet also Raum für Anpassungen/Verbesserungen zum Einstieg in die Modulprogrammierung. :roll_eyes:

Nein, Newsletter werden nicht ins BCC genommen. Der Rest ist working as intended. :wink:

Hallo,

genau so ein Modul habe ich gesucht. ABER:

Ich habe das gerade so aufgerufen:

composer require --no-update pflaesterer/carbonoxid

composer update --no-dev

Und jetzt geht mein Shop gar nicht mehr. Kein Backend, kein Frontend. Es kommt nur:

Diese Seite funktioniert nicht

neueswollgut.wollgut.shop kann diese Anfrage momentan nicht verarbeiten.

HTTP ERROR 500

Bin gerade leicht panisch, weil bisher lief Dank @vanilla_thunder alles ganz prima. Ich hoffe, dass mir geholfen wird.

Hier noch die Ausgaben aus PuTTY:

(uiserver):u88908871:~/clickandbuilds/NeuesWollgut$ composer require --no-update pflaesterer/carbonoxid
Using version ^1.0 for pflaesterer/carbonoxid
./composer.json has been updated
(uiserver):u88908871:~/clickandbuilds/NeuesWollgut$ composer update --no-dev
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 1 update, 0 removals

  • Locking pflaesterer/carbonoxid (v1.0.2)
  • Upgrading therealworld/tools-plugin (v2.1.17 => v2.1.19)
    Writing lock file
    Installing dependencies from lock file
    Package operations: 1 install, 1 update, 72 removals
  • Downloading pflaesterer/carbonoxid (v1.0.2)
  • Downloading therealworld/tools-plugin (v2.1.19)
  • Removing theseer/tokenizer (1.2.0)
  • Removing theseer/fdomdocument (1.6.6)
  • Removing symfony/translation (v3.4.47)
  • Removing symfony/polyfill-php72 (v1.20.0)
  • Removing symfony/polyfill-intl-idn (v1.17.1)
  • Removing symfony/dom-crawler (v2.7.51)
  • Removing symfony/css-selector (v2.8.52)
  • Removing symfony/browser-kit (v2.8.52)
  • Removing sebastian/version (2.0.1)
  • Removing sebastian/resource-operations (1.0.0)
  • Removing sebastian/recursion-context (3.0.1)
  • Removing sebastian/object-reflector (1.1.2)
  • Removing sebastian/object-enumerator (3.0.4)
  • Removing sebastian/global-state (2.0.0)
  • Removing sebastian/finder-facade (1.2.3)
  • Removing sebastian/exporter (3.1.3)
  • Removing sebastian/environment (3.1.0)
  • Removing sebastian/diff (2.0.1)
  • Removing sebastian/comparator (2.1.3)
  • Removing sebastian/code-unit-reverse-lookup (1.0.2)
  • Removing sabberworm/php-css-parser (8.3.1)
  • Removing ralouphie/getallheaders (3.0.3)
  • Removing psr/http-message (1.0.1)
  • Removing phpunit/phpunit-mock-objects (5.0.10)
  • Removing phpunit/phpunit (6.5.14)
  • Removing phpunit/phpcov (4.0.5)
  • Removing phpunit/php-token-stream (2.0.2)
  • Removing phpunit/php-timer (1.0.9)
  • Removing phpunit/php-text-template (1.2.1)
  • Removing phpunit/php-file-iterator (1.4.5)
  • Removing phpunit/php-code-coverage (5.3.2)
  • Removing phpspec/prophecy (v1.10.3)
  • Removing phpdocumentor/type-resolver (1.4.0)
  • Removing phpdocumentor/reflection-docblock (5.2.2)
  • Removing phpdocumentor/reflection-common (2.2.0)
  • Removing phenx/php-svg-lib (v0.3.3)
  • Removing phenx/php-font-lib (0.5.2)
  • Removing phar-io/version (1.0.1)
  • Removing phar-io/manifest (1.0.1)
  • Removing pdepend/pdepend (2.5.0)
  • Removing oxid-esales/testing-library (v7.2.0)
  • Removing oxid-esales/php-selenium (v1.0.5)
  • Removing oxid-esales/oxideshop-ide-helper (v4.0.0)
  • Removing oxid-esales/mink-selenium-driver (v1.1.2)

[ErrorException]
require(/homepages/38/d676841586/htdocs/clickandbuilds/NeuesWollgut/vendor/
composer/…/ralouphie/getallheaders/src/getallheaders.php): failed to open
stream: No such file or directory

update [–with WITH] [–prefer-source] [–prefer-dist] [–dry-run] [–dev] [–no-dev] [–lock] [–no-install] [–no-autoloader] [–no-scripts] [–no-suggest] [–no-progress] [-w|–with-dependencies] [-W|–with-all-dependencies] [-v|vv|vvv|–verbose] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–prefer-stable] [–prefer-lowest] [-i|–interactive] [–root-reqs] [–] []…

(uiserver):u88908871:~/clickandbuilds/NeuesWollgut$

Sehe gerade ganz viele removings. Kann man die irgendwie schnell wieder reinbekommen?

Panische Grüße

Matthias

Ok, habe das so gelöst, dass ich ein bestehendes Modul einfach noch mal installiert habe. Jetzt geht alles wieder.

Eigentlich ein tolles Modul, dafür schon mal danke. Aber wenn ich Newsletter versende, dann bekomme ich ALLE auch an die im Modul angegebene Adresse. Kann ich da vielleicht selbst was ändern?

Schöne Grüße

Matthias

Danke. :slight_smile:

Auf die Schnelle würde mir nur einfallen, das Modul zu deaktivieren, wenn man den Newsletter verschicken möchte.

Ich lege es mir mal auf Wiedervorlage, aber Pull-Requests können gerne gemacht werden. :wink:

Ich würde nach der aktiven Klasse suchen und diesen Fall auschliessen:
Klasseninhalt suchen

$oxViewConfig = oxNew(‘oxViewConfig’);

if(!filter_var($bcc, FILTER_VALIDATE_EMAIL) && strpos($oxViewConfig->getActiveClassname(), ‘newsletter’) !== true)

oder vergleichen

$oxViewConfig = oxNew(‘oxViewConfig’);

if(!filter_var($bcc, FILTER_VALIDATE_EMAIL) && $oxViewConfig->getActiveClassname() != “newsletter_selection”)