Keine message-ID bei Mail-Versand per SMTP

Eigentlich sollte nach „Hilfstext“ der Wert aus SERVER_NAME genommen werden, wenn die Config leer ist. Egal was ich mache, ich habe immer eine ID vom Server selber.

Ich kann nicht sagen, ob die ID wirklich fehlt, oder nur - damit sie passt - in meinem Fall von All-Inkl. überschrieben wird.

Auch wenn es mich aktuell nicht „betrifft“ Shopware Issuetracker

Vielleicht gibt es schon ein Ticket, habe aber keins gefunden.
Aber ich wette, das wird noch vor dem Wochenende auf „Backlog“ - oder wie ich es nenne LMAA - gesetzt.

Hallo zusammen,

zum Thema an sich:

Viele Grüße

Hey,

wie hier schon mehrfach berichtet ist es nicht ganz klar, ob der Mail-Server dies setzen sollte oder wir. Wir prüfen aber nun ob hier eine Anpassung möglich ist. Bis dahin sollte die Mail-Methode als Zwischenlösung genutzt werden.

2 „Gefällt mir“

Ich bin jetzt auch kein Coder - evtl. ist u.a. aber auch folgendes problematisch:

if (isset($_SERVER["SERVER_NAME"])) {
            $hostName = $_SERVER["SERVER_NAME"];
        } else {
            $hostName = php_uname('n');
        }

Bei Verwendung von mail(php) wird als Hostname der Benutzername gesetzt, in dessen Kontext die Shopware Instanz / PHP läuft. Taucht dies dann irgendwo im SMTP Header auf und entspricht nicht einem validen Hostnamen des Mailservers, der für die Domain zuständig sein soll, kann dies durchaus als Spam gewertet werden.

Viele Grüße

Vielleicht noch ein aktueller Screenshot um die Thematik zu untermauern. Eben eine Testmail via SMTP an eine Gmail-Adresse schicken lassen. Die Mail selber ist im Posteingang angekommen. Letztens wurde von Gmail noch eine Fehlermeldung zur Absender-Adresse gesednet, was heute jedoch nicht der Fall war. Dafür gab es zur Mail im Gmail Posteingang dieses Warnung:

Ergänzung:

Ich habe zudem weiter Test mit dem Eintrag „Hostname für die Message-ID“ gemacht. Wenn ich hier etwas eintrage, kommen alle Mails nicht mehr an.

Weil ich das hier gerade lese. Die Antwort ist falsch.
Da gehört der FQDN des Servers rein, auf welchem der Shop läuft.

2 „Gefällt mir“

Das hab ich vorhin auch gemacht.
Goggle war aber so freundlich eine Message-ID „nachzurüsten“

Message-ID: 62d12b66.1c69fb81.fb11e.7cadSMTPIN_ADDED_MISSING@mx.google.com

Vermutlich aber nur weil spf,dkim,dmarc korrekt gesetzt sind.

Ja ist mir auch aufgefallen, wobei bei einem Test vor einigen Tagen dies nicht der Fall war. Keine Ahnung wie das zusammenhängt.

Eben noch ein Test speziell mit den Eintrag „Hostname für die Message-ID“ gemacht. Ich habe hier den Hostnamen vom STMP-Server und den Hostnamen der Shopumgebung hier eingetragen. In allen Fällen ist die Mail bei Gmail NICHT angekommen. Dafür kamen Fehlermedlungen bezüglich der Message-ID zurück.

In meinem Test musste ich diese Feld leer lassen. Erst dann kam die Mail bei Gmail an, wenn auch mit Warnung (siehe Beitrag oben).

Es lohnt sich wohl beim Support hartnäckig zu sein:

Hallo Herr Schmidt, vielen Dank für Ihre Rückmeldung. Wir haben uns das Verhalten noch einmal genauer angesehen und dabei herausgefunden, dass dies durch das PayPal Plugin / Zahlungen ausgelöst wird. Wir haben dies sogleich an unsere Entwicklung weitergegeben, welche unter Hochdruck an einer Lösung arbeitet. Den Status können Sie hier einsehen: Shopware Issuetracker Da die Entwicklung grade erst damit begonnen hat, können wir noch keine Einschätzung geben, wann dieses Verhalten gelöst sein wird. Doch arbeiten wir bereits an einer Lösung. Als Workaround kann man von SMTP auf „mail“ umstellen. Achten Sie hierbei darauf, dass Sendmail auf dem Webhost korrekt konfiguriert ist. Dabei kann der Hoster Sie unterstützen bzw. Informieren. Sollten Sie weitere Fragen haben, zögern Sie nicht uns zu kontaktieren. Viele Grüße aus Schöppingen Phillip Weitkamp

Wiklich viel sagen tut mir das alles aber auch nicht. Ich hoffe auf eine Lösung durch ein Update!

Hallo Herr Schmid,
Und ich habe auf meinem „Message-ID TestShop“ gar kein Paypal installiert. :unamused:
Naja, hoffen wir mal das Beste und lassen die Jungs in Schöppingen arbeiten.

Update vom Support: Es liegt wohl doch nicht an Paypal…Nach wie vor Tip auf Mail anstatt SMTP umzustellen. Mit dem Hinweis, dass Sendmail auf dem Webhost korrekt konfiguriert sein mus. Was das auch wieder heißt.

Um SMTP zu verwenden, musst Du lediglich ein Postfach verwenden, welches Du z.B. auch in Deinem Mail-Client hinterlegt hast, um emails abzuholen.

Diese Informationen hinterlegst Du entsprechend im Shop - also i.d.R. email Adresse als Anmeldename, dazugehöriges Kennwort und den entsprechenden SMTP Server.

Bei Bedarf die Einstellungen vorher einfach mit einem email-Client wie z.B. Thunderbird durchtesten.

Viele Grüße

Danke, aber SMTP verwende ich ja seit Beginn an, nur dass es mit gmail nicht mehr funktioniert :slight_smile:
Da war und ist schon alles richtig in Shopware hinterlegt. Was man da eben einstellen kann.

Bei Umstellung auf „Mail“ soll ich nun aber „sendmail“ auf dem Webhost „korrekt“ konfigurieren. Das weiß ich eben wieder nicht weiter…

Die Einstellungen für die Verwendung von mail findest Du hier:

Notiere Dir idealerweise Deine bisherigen Einstellungen. Nach Änderungen 1x den Shopware Cache löschen und ausprobieren.

Klappt es nicht, den Hoster kontaktieren ob dieser überhaupt mail(php) unterstützt.

Hallo zusammen,

das von @AndreHerking verlinkte Ticket (Shopware Issuetracker) wird Teil der 5.7.14 sein.
Ich habe auch einen Workaround für ältere SW Versionen als Kommentar hinzugefügt. Dafür muss man sich lediglich in einem Plugin auf ein Event subscriben und eine Methode aufrufen.

Ich hoffe, das hilft bis zum Release erstmal weiter.

Viele Grüße aus Schöppingen
Michael Telgmann

Edit:
Alternativ hier der Fix, wie er in den Core kommen wird:

diff --git a/engine/Library/Enlight/Components/Mail.php b/engine/Library/Enlight/Components/Mail.php
index 8c0438eefe4a5b31048708d48f0e2ec18f3a9792..54a7f8c672326ac7a65f9e9a0f998af69a4a480a 100644
--- a/engine/Library/Enlight/Components/Mail.php
+++ b/engine/Library/Enlight/Components/Mail.php
@@ -393,6 +393,10 @@ class Enlight_Components_Mail extends Zend_Mail
             ]
         );
 
+        if (!$this->getMessageId()) {
+            $this->setMessageId();
+        }
+
         return parent::send($transport);
     }
 }
3 „Gefällt mir“

@Michael_Telgmann
Vielen Dank.
Habs mal eingebaut und funktioniert soweit.

@Michael_Telgmann

Hallo Michael.
Gut dass nun endlich eine Message-ID beim smtp Versand generiert wird. :+1:

Was mir noch aufgfallen ist:
Backend/Grundeinstellungen/Mailer
Hostname für die MessageID wird ignoriert, egal ob leer oder befüllt.
Das ist jetzt aber nicht tragisch.

Dann würde ich in der engine/Library/Zend/Mail.php
folgende Zeile ändern

 return sha1($time . $user . $rand . $recipient) . '@' . $hostName;

in

return sha1($time . $user . $rand . $recipient) . '@' . str_replace('www.','', $hostName) ;

ein www im Domaintail der Messag-ID gibt Strafscore bei Spamfilter

oder

return sha1($time . $user . $rand . $recipient) . '@' .  php_uname('n');

Dann wäre das Perfekt.

Gruß Malan

Hallo Malan,

wenn in der globalen $_SERVER Variable SERVER_NAME nicht gesetzt ist, dann wird bereits php_uname('n') als Hostname genutzt.
Siehe shopware/Mail.php at 5.7 · shopware/shopware · GitHub

Viele Grüße aus Schöppingen
Michael Telgmann

Problem: Bei mir ist „SERVER_NAME“ gesetzt - und da die Domain www. ist, ist dort auch in der Var das www vorhanden. Was echt blöd ist „@www.domain.de
Wie von MaLan erwähnt, wird „Message-ID“ aus den „Mailer“-Einstellungen nicht verwendet. Wäre doch jetzt kein Problem, den verlinkten Code noch um eine Abfrage auf eben diese Variable zu ergänzen.
[Edit]Ja, wäre im Zend-Code, aber mal Hand aufs Herz: Die Library wird doch zu SW5-Lebzeiten betsimmt nicht mehr aktualisiert, da köntte man auch mal im Fremdcode patchen[/EDIT]

Edit:
Dann wäre das ja auch die Domain unter der das Backend aufgerufen wird. Generell sollte doch dann der Wert für den passenden Shop-Context verwendet werden, wenn man mehrere Sprach/Subshops hat.