Zum Inhalt springen

keine Bilder in der Bestell-Mail

Erstellt am 14. Dezember 2005 · 9 Antworten · letzte Antwort am 19. Juni 2006

Tags: E-Mail-Versand, Frage

Ph4te ·

Muss bei mir in der Firma die HP auf Typo3 umstellen. Das Haupttemplate ist soweit fertig und die News sind auch eingebunden.
Jetzt bin ich gerade am Shop dran und habe festgestellt, dass man die Plaintext-Emails lieber nicht benutzen sollte, wenn man bei nen paar hundert Bestellungen in der Woche noch den Überblick behalten will 😉

Die Formatierung der Text-Mails mit Tabstopps klappte sogar mit Outlook.
Allerdings ist die Länge der Artikelnamen und -Nummern nicht einhaltlich
--> Formatierung doch wieder nicht möglich.

Nach diesem Hin und Her habe ich mich entschieden, stattdessen doch die HTML-Mail zu benutzen.

Also im Constant-Editor die HTML-Mail akitviert und siehe da: Es kommt sogar was HTML-Artiges bei mir an.

Leider ohne Bilder und mit Haufenweise ">" im Mailtext :x

Mal nen Ausschnitt aus dem Quelltext der Mail:

<td BACKGROUND=cid:part0.<74dc569f50716a445ced7049e181c479@domain.tld>><img src="cid:part1.<74dc569f50716a445ced7049e181c479@domain.tld>" width="100" height="1"></td>

und das gleiche nochmal im Original aus der Seite:

<td background="fileadmin/templates/nav_bottom_background_1.png"><img src="/clear.gif" width="100" height="1" alt="" /></td>

Hat einer ne Ahnung, wie ich die Bilder entweder direkt auf den absoluten Pfad verlinken, oder als Anhang mitschicken kann?

Ich verwende:
Typo 3.8.0
tt_products 2.3.7

//edit:
hat sich (fast) erledigt. #paralyzed#

Bin hier fündig geworden:
http://lists.netfielders.de/pipermail/typo3-english/2005-February/001397.html

Und das ist die Datei, um die es geht:
typo3conf/ext/tt_products/pi1/class.tx_ttproducts_htmlmail.php

$this->messageid = '<'.md5(microtime()).'@domain.tld>';

geändert zu:

$this->messageid = md5(microtime()).'@domain.tld';

Zusätzlich habe ich noch

$this->substMediaNamesInHTML(0); // 0 = relative

auf

$this->substMediaNamesInHTML(1); // 0 = relative

geändert.

Die Mail kommt jetzt fehlerfrei und komplett mit Bildern an, allerdings werden immernoch irgendwelche Attachments mitgeschickt.
Die Bilder sind mit absolutem Pfad versehen, weswegen mich die Anhänge doch ein bisschen verwirren.

Es werden immer 4 Stück mitgeschickt, alle gleich groß (334 Byte).

ATT02660.txt
ATT02661.txt
ATT02662.txt
ATT02663.txt

$this->extractHyperLinks();
$this->fetchHTMLMedia();

habe ich schon auskommentiert --> keine Veränderung!

Irgendwer ne Idee, wie ich die Dinger wegkriege?

Flink ·
Ph4te schrieb

Die Bilder sind mit absolutem Pfad versehen, weswegen mich die Anhänge doch ein bisschen verwirren.

Es werden immer 4 Stück mitgeschickt, alle gleich groß (334 Byte).

ATT02660.txt
ATT02661.txt
ATT02662.txt
ATT02663.txt

$this->extractHyperLinks();
$this->fetchHTMLMedia();

habe ich schon auskommentiert --> keine Veränderung!

Irgendwer ne Idee, wie ich die Dinger wegkriege?

Die Bilder werden in der Regel in der Email versendet ohne Links. Ich erhalte als Link des Bildes einen auf die Mailbox des lokalen Rechners.
Wie hast du den Link auf die Bilder im Server hineingebracht?

Ph4te ·
Flink schrieb

Wie hast du den Link auf die Bilder im Server hineingebracht?

$this->substMediaNamesInHTML(0);
geändert zu:
$this->substMediaNamesInHTML(1);

Da das ganze allerdings Probleme mit den Sicherheitsrichtlinien bei Outlook hat, würde ich doch lieber die inline-Variante (mit sid:...) einbinden.

Die Attachments bis auf die AGB.pdf scheinen allerdings nicht richtig kodiert zu werden:

------------part_2_43a6af7123e3d
Content-Type:
Content-ID: <part0.c63619153631e15c6f1df317a6b16427@domain.tld>
Content-Transfer-Encoding: base64

------------part_2_43a6af7123e3d
Content-Type:
Content-ID: <part1.c63619153631e15c6f1df317a6b16427@domain.tld>
Content-Transfer-Encoding: base64

------------part_2_43a6af7123e3d
Content-Type:
Content-ID: <part2.c63619153631e15c6f1df317a6b16427@domain.tld>
Content-Transfer-Encoding: base64

------------part_2_43a6af7123e3d
Content-Type:
Content-ID: <part3.c63619153631e15c6f1df317a6b16427@domain.tld>
Content-Transfer-Encoding: base64

------------part_2_43a6af7123e3d--
------------part_1_43a6af711f021
Content-Type: application/octet-stream
name="agb.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="agb.pdf"

Ph4te ·

Ich habe das ganze jetzt unter einem Windows-System erneut getestet und da funktioniert es auf Anhieb (nach Änderung der Message-ID).

Auf dem Linux-Server funktioniert es hingegen nicht, obwohl es die gleichen Einstellungen seien sollten. Auch die Datei class.tx_ttproducts_htmlmail.php ist exakt gleich.

Ich vermute den Fehler nach wie vor bei der Base64-Kodierung der Bilder, da sie ja mitgeschickt werden.
Allerdings ohne Inhalt und vorallem ohne den Content-Type. #evil#
(siehe obigen Beitrag)

Es kann doch nicht sein, dass ich der einzige bin, der das nicht gebacken kriegt #angry#

Ph4te ·

Bin leider nicht so der PHP-Spezialist...

Meinst du jetzt nen echo-Befehl in die entsprechende Funktion schreiben?
Oder kann man PHP-Scripte noch anders debuggen?

Und vorallem, warum gibt es die gleiche Datei 2 Mal?
1. /t3lib/class.t3lib_htmlmail.php
2. /typo3/t3lib/class.t3lib_htmlmail.php

Flink ·
Ph4te schrieb

Bin leider nicht so der PHP-Spezialist...

Meinst du jetzt nen echo-Befehl in die entsprechende Funktion schreiben?
Oder kann man PHP-Scripte noch anders debuggen?

englische Debug-Anweisung

Ph4te schrieb

Und vorallem, warum gibt es die gleiche Datei 2 Mal?
1. /t3lib/class.t3lib_htmlmail.php
2. /typo3/t3lib/class.t3lib_htmlmail.php

Die sind ident, unter LINUX sollte es nur ein Link sein. Aber /t3lib/... muß für das Debuggen verwendet werden oder das andere?

Ph4te ·
Flink schrieb

Aber /t3lib/... muß für das Debuggen verwendet werden oder das andere?

jap, /t3lib/... das sagt jedenfalls nen debug(PATH_t3lib) in der /typo3conf/ext/tt_products/pi1/class.tx_ttproducts_htmlmail.php

	function getURL($url)	{
		debug("getURL     Parameter     ".$url);
		$url = $this->addUserPass($url);
			// reads a url or file
		if($fd = @fopen($url,"rb"))	{
			$content = "";
			while (!feof($fd))	{
				$content.=fread( $fd, 5000 );
			}
			fclose( $fd );
			debug("getURL     Datei fertig geladen");
			return $content;
		} else {
			debug("getURL     konnte Datei nicht laden");
			return false;
		}
	}

Ergebnis:

|getURL Parameter fileadmin/agb.pdf||getURL Datei fertig geladen||getURL Parameter http://www.xxx.de/fileadmin/templates/xxx/shopheader.gif||getURL konnte Datei nicht laden||getURL Parameter http://www.xxx.de/fileadmin/templates/xxx/nav_bottom_background_1.png||getURL konnte Datei nicht laden||getURL Parameter http://www.xxx.de/clear.gif||getURL konnte Datei nicht laden||getURL Parameter http://www.xxx.de/typo3temp/pics/2962d0f00d.png||getURL konnte Datei nicht laden||getURL Parameter http://www.xxx.de/typo3temp/pics/ee86fb35c8.jpg||getURL konnte Datei nicht laden|

Was auch nicht weiter verwunderlich ist, wenn auf dem Server in der php.ini "allow_url_fopen" deaktiviert wurde #angry#
(siehe http://de2.php.net/fopen)

Ich warte jetzt noch auf die Aktivierung von "allow_url_fopen" und hoffe, dass es danach funktioniert 😉

An dieser Stelle schonmal Danke für die unermüdliche Hilfe 🙂

Kurini ·

Hi

ich hab leider auch das Provlem das meine Bilder nicht angezeigt werden.
Typo 3.8.0 - tt_products 2.4.10

ich hab in der email solche links für die bilder : <img src="cid:part1.e7c618cadb9f5336bcda53a5e535bab5@domain.tld" width="100" height="100" border="0" alt="" title="" />

die 2 tipps da im ersten Post hab ich probiert wirken aber nicht.
Jemand eine Idee ?