PHP Developer ForumHier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.
ich habe seit einiger Zeit Probleme mit meinem E-Mail-System. Ich benutze das kostenlose Autoresponder-Script "Infinite".
Das Problem könnte verschiedene Ursachen haben, ich hab' jetzt einfach mal ins PHP-Forum geschrieben.
Das Problem
Seit einiger Zeit kommen meine E-Mails, die ich raussende, nicht mehr vollständig an. Die Hauptnachricht, die ich im Interface eingebe und in der Datenbank eingetragen ist, wird nach einigen Absätzen einfach mitten in Satz und/oder Wort abgeschnitten.
Der Unsubscribe-Link, der nicht aus der Datenbank ausgelesen wird, sondern einfach vor dem Verschicken an die Hauptnachricht angehängt wird, wird aber vollständig angezeigt.
Das sieht dann so aus:
Hier noch mal der zugehörige Eintrag aus der Datenbank:
Mit folgendem Code aus dem Script wird die E-Mail zusammengesetzt:
# Final filtering $Send_Subject = stripnl(str_replace("|","",$Send_Subject)); $Message_Body = str_replace("|","",$Message_Body); $Message_Body .= '<h2>Zur Zeit gibt es leider Probleme mit dem E-Mail-System... blalba</h2> <br /><br /> <small>Wenn du keine regelmäßigen Mails mehr erhalten möchtest, kannst du dich <a href="' . $UnsubURL . '">hier abmelden</a>.</small>'; $Message_Headers = str_replace("|","",$Message_Headers); $Message_Body = utf8_decode($Message_Body);
Lösungsansatz?
Ich könnte mir vorstellen, dass das Problem mit utf8_decode zu tun hat. Wir hatten nämlich vor einigen Monaten einen Serverumzug und da haben sich auch auf mysteriöse Weise Zeichensätze in der Datenbank geändert, was zu Problemen in einem PHPBB-Forum geführt hat.
Der Zeichensatz für BodyHTML ist latin1_swedish_ci.
Könnt ihr dazu was sagen?
Das ist merkwürdig!
Das echt seltsame ist, dass ein Kumpel und ich, an die ich heute Test-E-Mails versendet habe, vollständige E-Mails erhalten haben.
Eine Test-Mail an einen Account, der schon länger im System eingetragen ist, kam unvollständig an. (siehe Screenshot).
Es scheint also so zu sein, dass Neuanmeldungen vollständige E-Mails erhalten und blos die, die schon länger dabei sind, abgeschnittene bekommen.
Ich hoffe die Fehlerbeschreibung war verständlich und aufschlussreich und würde mich sehr über Input, Tipps und Lösungsvorschläge freuen.
mir fällt auf Anhieb nur auf, dass der gepostete Code nicht die abschließende Boundary enthält und dass das utf8_decode dort mehr als merkwürdig erscheint. Sofern aber in $charset immer ISO-8859-1 drin steht, richtet es zumindest keinen Schaden an.
Den Quelltext der Nachricht solltest du dir einfach mal vor dem Absenden mit echo ausgeben lassen. Ggf. kannst du ihn auch gekürzt posten. Aber ohne den kann man dazu nicht viel sagen.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
# Verbose
if ($silent != TRUE) { echo "Responder msg to sub #" . $subscriber_id . "<br>\n"; echo '<br />' . $Message_Body . '<br />'; }
# Update the DB
$query = "UPDATE InfResp_subscribers
SET SentMsgs = '$NewMsgStr',
LastActivity = '$Set_LastActivity'
WHERE SubscriberID = '$DB_SubscriberID'";
$DB_result = mysql_query($query) or die("Invalid query: " . mysql_error());
# Increment the send counts
$Send_Count++;
$config['daily_count']++;
Mit echo habe ich $Message_Body ausgeben lassen. Die E-Mail wird vollständig ausgegeben, trotzdem erhalte ich im Postfach nur eine abgeschnittene.
Der Anfang der E-Mail (der auf der Seite erscheint):
Zitat:
This is a multi-part message in MIME format. --0ea33cbb6b7462076274600f89a737033599 Content-type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-Disposition: inline ------------------------------------------------ Unsubscribe: Abmeldung erfolgreich - Gitarren-Blog.de This responder is Powered By Infinite Responder! Infinite Responder - Free Autoresponder Script --0ea33cbb6b7462076274600f89a737033599 Content-type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-Disposition: inline
Hallo Macks,
ich möchte dich ganz herzlich zum neunzehnten Teil der Newsletter-Serie "Wie du mit konkreten Fingerübungen dein Gitarrespiel leicht um ein Vielfaches verbessern kannst!" Willkommen heißen.
Heute möchte ich mit dir den Einstieg ins Sweep-Picking besprechen.
Was ist Sweep-Picking?
$Message_Body .= $DB_MsgBodyHTML . $newline.$newline; $Message_Body .= "--" . $boundary . "--" . $newline; // <--------------------------- das hier hat gefehlt } else {
Der Grund, warum die „alten User“ keine Probleme haben, ist vermutlich der, dass die alle als Plaintext-Empfänger eingetragen sind.
Edit: Das nächste Mal bitte den Quelltext der Seite posten, damit man auch die Zeilenumbrüche besser sieht.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Geändert von AmicaNoctis (23-06-2010 um 00:11 Uhr)
Erstmal muss ich dir sehr sehr herzlich danken - für deinen Einsatz. Ob's geklappt hat, kann ich dir noch nicht sagen, weil ich Depp meinen Unsub-Link im Text hier im Forum gepostet habe und jemand aus Versehen drauf geklickt hat.
Ich habe jetzt deine Zeile noch eingefügt, utf8_decode habe ich noch nicht raus...
Die alten User haben übrigens auch HTML-Mails empfangen... bzw. tun es immer noch. Jetzt hoffentlich vollständig.
Ich melde mich nochmal, wenn ich Feedback habe, ob das Problem behoben wurde.
das Problem ist leider noch nicht behoben. Es scheint auch nicht an alten oder neuen Usern zu liegen, dass E-Mails abgeschnitten, es hat irgendetwas mit den Hosts zu tun.
Auf meinem Testaccount bei GMX kommen die Mails nur abgeschnitten an. Auf einem anderen Account passt alles (eigener Host).
Schaue ich mir die Mail im Webinterface von GMX an und nicht in Apple Mail, ist die E-Mail vollständig.
Ich habe mal den Quelltext der abgeschnittenen Mail zitiert, vielleicht bringt uns das weiter?
Zitat:
Return-Path: <web40@lucem.nodeserver.de>
X-Flags: 0000
Delivered-To: GMX delivery to macks-loser@gmx.net
Received: (qmail invoked by alias); 25 Jun 2010 07:39:00 -0000
Received: from lucem.nodeserver.de (EHLO lucem.nodeserver.de) [78.46.23.245]
by mx0.gmx.net (mx011) with SMTP; 25 Jun 2010 09:39:00 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
by lucem.nodeserver.de (Postfix) with ESMTP id DD6E24DEE014
for <macks-loser@gmx.net>; Fri, 25 Jun 2010 09:38:58 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at lucem.nodeserver.de
Received: from lucem.nodeserver.de ([127.0.0.1])
by localhost (lucem.nodeserver.de [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id GV0IYHILNS90 for <macks-loser@gmx.net>;
Fri, 25 Jun 2010 09:38:50 +0200 (CEST)
Received: by lucem.nodeserver.de (Postfix, from userid 2541)
id 66C094DEE016; Fri, 25 Jun 2010 09:38:43 +0200 (CEST)
To: macks-loser@gmx.net
Subject: Fingeruebung 1: 1, 2, 3, 4 - Das ist ja einfach!
X-PHP-Script: gitarren-blog.de/newsletterserie/s.php for 92.229.143.1
Envelope-to: macks-loser@gmx.net
From: Fingeruebungs-Macks <mail@gitarren-blog.de>
Date: Fri, 25 Jun 2010 09:38:43 +0200
Reply-To: mail@gitarren-blog.de
Sender-IP: 78.46.23.245
MIME-Version: 1.0
Priority: normal
X-Mailer: Infinite Responder
Content-Type: multipart/alternative;
boundary="515251692bb6c9e7a1f672782975a28a2462"
Message-Id: <20100625073843.66C094DEE016@lucem.nodeserver.de>
X-GMX-Antivirus: 0 (no virus found)
X-GMX-Antispam: 0 (Sender is in whitelist: mail@gitarren-blog.de);
Detail=5D7Q89H36p4L00VTXC6D4q0N+AH0PUCnetdm6+jp8LHV5oJk5RHpdqOrOnOPpL5Vhv3y9
+zeL022rpNVS4LPGiJ6BdYmUM5JV1;
X-GMX-UID: LGoXeNQ7f2I+GMzrlG1oAXlwdWxlc9al
<p>Hallo Macks,</p> <p>ich möchte dich ganz herzlich zum ersten Teil der Newsletter-Serie "Wie du mit konkreten Fingerübungen dein Gitarrespiel leicht um ein Vielfaches verbessern kannst!" Willkommen heißen. Es freut mich sehr, dass du dich angemeldet hast und bereit bist, ein bisschen Konzept in deine Übungsroutine zu bringen.</p> <h1>Grundlegendes und Einführung</h1> <p>Wir beginnen mit einer sehr grundlegenden Übung. Ich möchte dir vorher jedoch noch ein paar Sachen zeigen, die unheimlich wichtig sind, damit die Fingerübungen, die ich dir zeige, auch etwas nützen.</p> <ol> <li>Das wichtigste Zuerst: Du musst die Fingerübung spielen! Es nützt nichts, wenn du dir die Übung anschaust und dir denkst "oh, das kenne ich ja schon - oder: das ist ja einfach" - du musst die Übung spielen - und das mehrmals -, damit du einen Nutzen von ihr hast. Du denkst dir: ich bin doch nicht blöd! Aber leider wenden die allerme
--515251692bb6c9e7a1f672782975a28a2462--
<h2>Zur Zeit gibt es leider Probleme mit dem E-Mail-System. Wenn diese Mail nach den ersten paar Absätzen abgeschnitten war, ist das ein Problem, an dessen Lösung wir arbeiten. Sorry!</h2><br /><br /><small>Wenn du keine regelmäßigen Mails mehr erhalten möchtest, kannst du dich <a href="http://gitarren-blog.de/newsletterserie/s.php?c=u56b39bd4d8c7674">hier abmelden</a>.</small>
Außerdem meldet GMX:
Zitat:
Kritische Inhalte
Zu Ihrer Sicherheit wurden potentiell gefährliche Inhalte dieser Mail gefiltert.
Ich kann jetzt den "Filter ausschalten", dann ist das Problem scheinbar behoben, wie mir einer meiner Abonnenten mitteilte.
Vielen Dank und liebe Grüße,
Macks
Edit: durch die zusätzliche Boundary hat sich nichts geändert, außer, dass jetzt auch der Abmeldelink der Hinweis auf die Mailfehler abgeschnitten werden.
Vielleicht hat noch jemand eine Idee? Irgendwas in dieser Mail muss doch GMX bedrohlich vorkommen, aber was ist es?
Und warum hat es früher geklappt und jetzt auf einmal nicht mehr?
Wenn ein Mailprovider eine Email als "verdächtig" einstuft (egal welchen Teil davon), wandert sie in den Spam-Folder oder sonstwohin. Sie wird aber nicht einfach abgeschnitten oder inhaltlich verändert.
Also entweder versendest du die Email schon so verstümmelt oder es ist ein Anzeigeproblem. Ich will sagen, mit "bedrohlich" hat das nichts zu tun.
ok. Verstümmelt sende ich sie nicht ab, das habe ich schon mit Testausgaben überprüft. Bei anderen Mail-Providern werden sie in Mail und bei GMX im Webinterface ja auch korrekt angezeigt.
Ist es also ein Darstellungsfehler? Woran liegt das? Ich kann mir das echt nicht erklären... früher liefen die Mails auch bei GMX einwandfrei.
wenn die Mail bei GMX im Web-Interface korrekt dargestellt wird, ist doch eigentlich alles wunderbar - wo wird sie denn dann abgeschnitten angezeigt ?
vielleicht ist sie dem Email-Programm der betreffenden Empfänger einfach zu lang (eingebettete Bilder) und wird deshalb abgeschnitten ...
Ich weiß nun nicht genau, wie grpß deine Mail durch die Encodierung der Bilder wird .. aber früher gab es Provider , die bei 6 MB abgeschnitten haben - und ebenso "doofe" Email-Programme .. offenbar haben die betroffenen Kunden noch soeines ....
was mir allerdings bei der Anzeige der Email auffällt - die soll zwar multipart sein .. aber müssen dann alle Teile die gleiche ID (dieser lange hash-schlüssel 5152 ...... ) haben?
wenn die Mail bei GMX im Web-Interface korrekt dargestellt wird, ist doch eigentlich alles wunderbar - wo wird sie denn dann abgeschnitten angezeigt ?
In E-Mail-Programmen wie Apple Mail, Thunderbird, Outlook.
Zitat:
Zitat von eagle275
vielleicht ist sie dem Email-Programm der betreffenden Empfänger einfach zu lang (eingebettete Bilder) und wird deshalb abgeschnitten ...
Ich weiß nun nicht genau, wie grpß deine Mail durch die Encodierung der Bilder wird .. aber früher gab es Provider , die bei 6 MB abgeschnitten haben - und ebenso "doofe" Email-Programme .. offenbar haben die betroffenen Kunden noch soeines ....
Die E-Mails sind zwar relativ lang (ca. 1-2 DIN A4-Seiten), aber sicher keine 6 MB groß.
Zitat:
Zitat von eagle275
was mir allerdings bei der Anzeige der Email auffällt - die soll zwar multipart sein .. aber müssen dann alle Teile die gleiche ID (dieser lange hash-schlüssel 5152 ...... ) haben?
Ich weiß es nicht. Kann jemand dazu etwas sagen?
Noch mal zu onemorenerd:
ich dachte deshalb an Bedrohung, weil GMX im Webinterface folgendes meldet:
Zitat:
Kritische Inhalte
Zu Ihrer Sicherheit wurden potentiell gefährliche Inhalte dieser Mail gefiltert.
Wenn man diesen "Filter" ausschaltet, wird die E-Mail in Outlook etc. richtig angezeigt.
<p>Hallo Macks,</p> <p>ich möchte dich ganz herzlich zum ersten Teil der Newsletter-Serie "Wie du mit konkreten Fingerübungen dein Gitarrespiel leicht um ein Vielfaches verbessern kannst!" Willkommen heißen. Es freut mich sehr, dass du dich angemeldet hast und bereit bist, ein bisschen Konzept in deine Übungsroutine zu bringen.</p> <h1>Grundlegendes und Einführung</h1> <p>Wir beginnen mit einer sehr grundlegenden Übung. Ich möchte dir vorher jedoch noch ein paar Sachen zeigen, die unheimlich wichtig sind, damit die Fingerübungen, die ich dir zeige, auch etwas nützen.</p> <ol> <li>Das wichtigste Zuerst: Du musst die Fingerübung spielen! Es nützt nichts, wenn du dir die Übung anschaust und dir denkst "oh, das kenne ich ja schon - oder: das ist ja einfach" - du musst die Übung spielen - und das mehrmals -, damit du einen Nutzen von ihr hast. Du denkst dir: ich bin doch nicht blöd! Aber leider wenden die allerme
--515251692bb6c9e7a1f672782975a28a2462--
<h2>Zur Zeit gibt es leider Probleme mit dem E-Mail-System. Wenn diese Mail nach den ersten paar Absätzen abgeschnitten war, ist das ein Problem, an dessen Lösung wir arbeiten. Sorry!</h2><br /><br /><small>Wenn du keine regelmäßigen Mails mehr erhalten möchtest, kannst du dich <a href="http://gitarren-blog.de/newsletterserie/s.php?c=u56b39bd4d8c7674">hier abmelden</a>.</small>
Ich seh grad, dass dort schon die abschließende Boundary (rot) kommt. Die darf und muss aber nur nach dem allerletzten Teil stehen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
wenn ich Mails im HTML-Format bei meinem Googlemail-Postfach - und bei GMX empfange - dann blendet "der" zuerst alle Bilder aus (blabla "unsicher" blabla) .. und erst nach nem Klick auf "alle Bilder in der Mail anzeigen"(Googlemail) lädt er die Bilder nach ..
Email ist nunmal eigentlich nur für Text gedacht - und bei all dem Schindluder, dass mit dieser GDI+-Lücke und manipulierten JPGs und anderen Grafiken getrieben wurde .. ich kann es den Mailern nicht verdenken, dass die Bilder nicht gleich angezeigt werden.
vielleicht solltest du mit einem der php -> pdf module einfach aus der Grafik-Seite ne PDF erzeugen und die dann als Anhang an eine "normale" Text-Mail ausliefern ..
Ich seh grad, dass dort schon die abschließende Boundary (rot) kommt. Die darf und muss aber nur nach dem allerletzten Teil stehen.
Danke, habe das nun geändert, ändert aber nichts am Verhalten im GMX-Postfach.
Zitat:
Zitat von eagle275
vielleicht solltest du mit einem der php -> pdf module einfach aus der Grafik-Seite ne PDF erzeugen und die dann als Anhang an eine "normale" Text-Mail ausliefern ..
Das wäre eine Idee, aber wenn es eine Lösung zu meinem Problem gäbe, wäre ich noch glücklicher.
Ich schränke hiermit mein Problem weiter ein. Es ist ja echt merkwürdig, dass nur der Text, der aus der Datenbank kommt, abgeschnitten wird. Die Fußzeile (unsubscribe-link etc.), die in PHP einfach anfgefügt wird, wird ja auch in den abgeschnittenen E-Mails nach dem verkrüppelten Teil fehlerfrei angezeigt.
Ich habe schon im ersten Post erwähnt, dass ich vermute, dass es irgendwie etwas mit den Zeichensätzen zu tun hat.
Auf php.net bin ich außerdem auf folgenden Beitrag gestoßen:
Zitat:
I experienced problems with removed euro signs and some other accented letters. The text came from a DB but contained the euro sign etcetera inside the mail function, just as when you would define it as a string. (Did die($newsletter['message']). It was lost in the mail I received though! When I defined the message as a string inside the sending function (overriding text from DB), including euro sign as a single character, I DID receive the email including euro sign!
This was experienced on 2 different email accounts. With one I received no text after the euro sign.
But only when text came from mySQL DB from a longtext Latin1-field...
I installed the pear mail class and this solved the strange problem and could just send text from the DB...
Ich habe leider nur einfachen Webspace und kann deshalb nicht ohne weiteres das PEAR-Paket installieren. Vielleicht bringt uns das Zitat aber trotzdem weiter.
Vielleicht solltest du das ganze doch mal als Quoted-Printable codieren.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Die RIGID-FLEX-Technologie Die sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.
WeltExplorer v1.0 ist ein Dateimanager zum Browsen und Operieren im Dateisystem. Bei installiertem cURL können Ordner und Dateien zu entfernten FTP-Servern hochgeladen bzw. von diesen heruntergeladen werden, etwa zum Erstellen von Backups oder Mirrorsites
> Job Site Pro - web-basiertes Programm, auf PHP/MySQL für Erstellung der funktionellen Job Board Site gebaut. Das hat erweitertes Management-System für Arbeitssuchenden und Arbeitgeber und kann für bestimmte Länder, Regionen oder einfach generelle Job Si