php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen : Absendedatum einer Email ?!


paddy
27-01-2004, 08:52
Kann man das mit mail() irgendwie selber festlegen ?

mrhappiness
27-01-2004, 09:04
ja$date=strtotime('2003/10/22');
$rfc822=date('r', $datum);
mail('empfaenger', 'subject', 'body', 'Date: '.$rfc822);

Trashar
27-01-2004, 09:19
öhm das heißt nur, dass in der email steht, dass sie angeblich da versendet wurde oder?
also es wird nun nicht gewartet bis dieser zeitpunkt eintrifft und wird dann versendet?!

mfg

mrhappiness
27-01-2004, 09:22
Original geschrieben von Trashar
also es wird nun nicht gewartet bis dieser zeitpunkt eintrifft und wird dann versendet?!ich hab die frage so interpretiert, dass er die mail rückdatieren will :)

paddy
27-01-2004, 09:44
Mein Webspace steht im SafeMode - da scheint das deaktiviert zu sein .
Gibts trotzdem eine Möglichkeint ?

paddy
27-01-2004, 09:44
Original geschrieben von mrhappiness
ich hab die frage so interpretiert, dass er die mail rückdatieren will :)

War genau richtig - nur eben
Mein Webspace steht im SafeMode - da scheint das deaktiviert zu sein .

paddy
27-01-2004, 10:36
Original geschrieben von mrhappiness
ja$date=strtotime('2003/10/22');
$rfc822=date('r', $datum);
mail('empfaenger', 'subject', 'body', 'Date: '.$rfc822);

funtioniert net - kann es sein, das da irgendwo nen fehler is ?

Abraxax
27-01-2004, 10:39
Original geschrieben von paddy
funtioniert net - super fehlerbeschreibung mal wieder.


wie wärs, wenn du dann mal selber nach schaust.... www.php.net hilft dir auch dabei.

paddy
27-01-2004, 12:44
Original geschrieben von paddy
Mein Webspace steht im SafeMode - da scheint das deaktiviert zu sein .
Gibts trotzdem eine Möglichkeint ?

mrhappiness
27-01-2004, 17:13
also laut doku is im safemode der fünfte parameter deaktivert, du hast aber nur 4 :confused:

was gibt's denn für ne fehlermeldung?
irgendwas von wegen "safemode restriction" oder so?
mach als erste zeile malerror_reporting(E_ALL);

paddy
27-01-2004, 20:20
Original geschrieben von mrhappiness
also laut doku is im safemode der fünfte parameter deaktivert, du hast aber nur 4 :confused:

was gibt's denn für ne fehlermeldung?
irgendwas von wegen "safemode restriction" oder so?
mach als erste zeile malerror_reporting(E_ALL);


SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE

If (mail(empfänger, empfaenger, message, header, 'Date: '.$rfc822)) {

mrhappiness
27-01-2004, 20:24
Original geschrieben von paddy
If (mail(empfänger, empfaenger, message, header, 'Date: '.$rfc822)) { warum zweimal empfänger? :confused:

wenn du mit header den betreff meinst, dann musst du header und message tauschen

Abraxax
27-01-2004, 20:26
einmal mit ä und einmal mit ae ... :rofl:

paddy
27-01-2004, 21:08
Original geschrieben von Abraxax
einmal mit ä und einmal mit ae ... :rofl:

If (mail(empfaenger, betreff, message, header, 'Date: '.$rfc822)) {

LOL - tschuldigung - hab mich verschrieben ;)


$header = "From:".$_POST['sendmail']." (".$_POST['mailname'].")\r\n";
$header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
$header .= "X-Mailer: PHP ". phpversion();

hmm - irgendwas in der Syntax falsch ?

TobiaZ
27-01-2004, 22:32
versuch mal variablen zu nehmen!!!

paddy
28-01-2004, 11:30
Original geschrieben von TobiaZ
versuch mal variablen zu nehmen!!!

Hmm - danke für den Vorschlag Tobiaz, aber ich hab nur die Variablen durch namen ersetzt damit du auch nen durchblick bekommst ;)

TobiaZ
28-01-2004, 18:33
hmm, in pseudocode nen fehler zu finden halte ich für schwer!

die reihenfolge der parameter von mail sollte wohl jeder kennen, kanst also ruhig den richtigen code posten.

delightful-mary
15-02-2008, 13:42
Versteh ich das jetzt richtig das ich zum Beispiel ne mail heute schreibe, die aber bei dem adressaten sagen wir so ankommt, als ob ich sie schon im dezember verschickt hätte?????

Wenn das geht, könntet ihr mir das bitte mal blondinensicher erklären?

Abraxax
15-02-2008, 13:53
du brauchst im header einer mail nur das DATE auszuwerten/falsch definieren ... das ist eben nicht "fälschungssicher".

ich kann dir auch ne mail von bill.gates@mircosoft.com vom 01.01.1987 14.35:15 zukommen lassen, wenn du willst ... das ist alles kein problem.

wenn du mehr über das SMTProtokoll wissen willst, kann dir google helfen.

delightful-mary
15-02-2008, 13:58
ja ok, aber geht das schnell und wie veränder ich das... bin doch blond....
hast du vielleicht skype?

bla$ter
15-02-2008, 13:59
Original geschrieben von delightful-mary
Versteh ich das jetzt richtig das ich zum Beispiel ne mail heute schreibe, die aber bei dem adressaten sagen wir so ankommt, als ob ich sie schon im dezember verschickt hätte?????

Wenn das geht, könntet ihr mir das bitte mal blondinensicher erklären?

Man könnte es so formulieren: alles, was du in deinem Mail Client siehst, ist für den Versand einer Email total egal, denn das woher, wohin, was wie wo steht wird schon festgelegt, bevor deine Mail überhaupt an den Server gesendet wird.

delightful-mary
15-02-2008, 14:06
Original geschrieben von bla$ter
Man könnte es so formulieren: alles, was du in deinem Mail Client siehst, ist für den Versand einer Email total egal, denn das woher, wohin, was wie wo steht wird schon festgelegt, bevor deine Mail überhaupt an den Server gesendet wird.

Blondinensicher?!

jahlives
15-02-2008, 14:45
Versteh ich das jetzt richtig das ich zum Beispiel ne mail heute schreibe, die aber bei dem adressaten sagen wir so ankommt, als ob ich sie schon im dezember verschickt hätte?????

Nein wie sollte das gehen? Der Empfangsserver wird auch einen Timestamp in die Email einbauen und der ist leider aktuell. Also hättest du dann eine Diskrepanz in den Timestamps, die jedem Mailbenutzer sagen würde, dass die Email wohl erst später als behauptet gesendet wurde.
Kann sein, dass man dies nicht auf den ersten Blick erkennen kann, aber sobald man sich die Header Daten der Email anschaut, dann wirds auffallen.
@paddy
So schonmal probiert?

$header = "From:".$_POST['sendmail']." (".$_POST['mailname'].")\r\n";
$header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
$header .= "X-Mailer: PHP ". phpversion()."\r\n\r\n";

Gruss

tobi

delightful-mary
15-02-2008, 14:52
das heisst aber, das es erst auffällt wenn man sich die eigenschaften genauer anschaut?

PHP-Desaster
15-02-2008, 15:40
Du schreibst die Adresse und den Absender eines Briefes auch vor dem Absenden darauf. Und als Absender kannst du natürlich sonstwas hinschreiben. Das Datum auf dem Brief kannst du natürlich aus selbst drauf schreiben!

Edit: Ist auf das Blondinen-sicher bezogen ;)

jahlives
15-02-2008, 15:44
Das Datum auf dem Brief kannst du natürlich aus selbst drauf schreiben!

Und was machst du in diesem Beispiel wenn der Empfänger einfach mal auf das Datum des Poststempels schaut. Dann denkt er sich: Toll einen Monat gewartet ehe der Brief abgeschickt wurde ;) Oder er vergleicht das Datum im Brief mit dem Eingangsdatum in seinen Briefkasten...
Ich würde so etwas lassen, weil es imho einfach nicht gut daherkommt wenn solche Diskrepanzen in den Daten vorhanden sind.

Just my 5 cents
Gruss

tobi

PHP-Desaster
15-02-2008, 16:11
Na klar sollte man sowas nicht machen. Aber die Frage kam auf, darum hab ich das mit ins Beispiel aufgenommen ;)

delightful-mary
15-02-2008, 16:34
witz komm raus... ich möchte doch ne mail schreiben und keinen brief

pekka
15-02-2008, 16:37
Warum willst du das Absendedatum einer Mail fälschen?! :confused:

PHP-Desaster
15-02-2008, 16:39
witz komm raus... ich möchte doch ne mail schreiben und keinen briefIch dachte, du wolltest es Blondinen-sicher?! :dontknow:

delightful-mary
15-02-2008, 16:40
Um jemanden nachzuweisen das ich ne mail gesendet habe (habe ich zwar net), aber ich stehe in der Beweispflicht. Und deswegen möchte ich eben jemanden ne mail senden, bei demjenigen soll aber dann da stehen erhalten XX.XX.2007...

pekka
15-02-2008, 16:42
:rofl: :rofl: :rofl:

delightful-mary
15-02-2008, 16:43
dat is net witzig .... :{

pekka
15-02-2008, 16:47
Also abgesehen davon, daß Mails fälschen keine Art ist: In den Headern steht dann drin, daß die Mail 2007 versandt wurde, und am 15. Februar 2008 vom POP-Server des Empfängers entgegengenommen. Sehr witzig. Damit kannst du keinen verarschen.

delightful-mary
15-02-2008, 16:51
ja ich bin unmoralisch und böse, aber wer ist das net?

jahlives
15-02-2008, 17:08
@Mary
Wenn es um Beweispflicht geht wird sich dein Gegenüber garantiert nicht mit Header Daten zufrieden geben, die von deinem Email Server gesetzt wurden. Da wird er nochmals garantiert die Header Daten der empfangenden Emailserver prüfen und die kannst du beim besten Willen nicht beeinflussen.
Hast du mal überlegt, dass dies je nach Umfeld wo du es anwendest als Betrug aufgefasst werden könnte und somit sogar rechtliche Konsequenzen haben könnte? Also mein Steueramt hätte an so was sicher keine Freude und würde mir das Hinterteil bis zum Hals aufreissen ;)

pekka
15-02-2008, 17:13
Leute gibts :p

TobiaZ
16-02-2008, 12:37
Hier wird ja wieder eifig rumgetrollt. Klasse was man hier so zu lesen bekommt...

martinm79
16-02-2008, 14:52
Um mal ein bisschen Konstruktiv zu werden.
Ich bekomme es nicht hin, das ich eine Email zu web.de schicken kann.
Zu ein gmail Account komme ich schneller durch, aber meistens auch nur in den Spam Ordner.

Also wenn ich sowas verwende, dann kommen die Emails garnicht bei web.de an.


$header = "Received: from [".$_SERVER['REMOTE_ADDR']."] (helo=".$_SERVER['SERVER_NAME'].")\r\n";
$header .= "X-Mailer: PHP/".phpversion()."\r\n";
$header .= "X-Sender-IP: ".$_SERVER['REMOTE_ADDR']."\r\n";
$header .= "Message-ID: <".time()."-".$this->mail_absender.">\r\n";
$header .= "Reply-To: ".$this->mail_absender."\r\n";
$header .= "Return-Path: ".$this->mail_absender."\r\n"; // Was ist das?
$header .= "Date: ".date("r", time())."\r\n"; // RFC 822 formatiertes Datum
$header .= "Content-type: text/html; charset=\"iso-8859-1\"\r\n";
$header .= "Content-Transfer-Encoding: 8bit\r\n";
$header .= "From: ".$this->mail_absender."\r\n";
$header .= "MIME-Version: 1.0\r\n";


Das einzigste, wobei ich bisschen Erfolgt hatte, war das hier:


include("class.phpmailer.php");
include("class.smtp.php");
$mail=new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port
$mail->Username = "xxxxxxxxxxx"; // GMAIL username
$mail->Password = "xxxxxxxxx"; // GMAIL password
$mail->From = "xxxxx";
$mail->FromName = "xxxxx";
$mail->Subject = "Der Email Test";
$mail->Body = "Hallo Martin - Test"; //HTML Body
$mail->AltBody = "Hallo, das ist der Text Format"; //Text Body
$mail->WordWrap = 50; // set word wrap
$mail->AddAddress("xxxxxx","Martin");

$mail->AddAttachment("phpmailer.gif"); // attachment
$mail->IsHTML(true); // send as HTML
if($mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}


Mit der Klasse phpmailer schicke ich eine Email über mein gmail Account per smtp raus und ich schaffe es eine email zu web.de zu schicken. Leider landet sie dann auch nur im Spam Ordner und das versenden dauert 2 Sekunden.

Wie schafft man es eine gültige Email an web.de zu schicken? Gibt es da noch eine aktuelle Klasse außer phpmailer.

Schafft ihr es zu web.de durchzukommen und falls ja, mit welchem header?

pekka
16-02-2008, 14:59
Ich hab in den Stickies mal was dazu verfaßt.

martinm79
16-02-2008, 15:22
Ja, das habe ich auch gelesen.
Ich habe auch den 5 Parameter -f gesetzt.

Aber mit meinem Schnipsel komm ich nicht weiter.

class htmlEmail{
public $mail_absender = false;
public $mail_empf = false;
public $mail_kopf = false;
public $mail_text = false;
public $copy_to_admin = 0; // Admin eine Copy schicken
public function senden(){
if (!$this->mail_empf) return false;
if (!$this->mail_absender) return false;
if (!$this->mail_kopf) return false;
if (!$this->mail_text) return false;
$header = "Received: from [".$_SERVER['REMOTE_ADDR']."] (helo=".$_SERVER['SERVER_NAME'].")\r\n";
$header .= "X-Mailer: PHP/".phpversion()."\r\n";
$header .= "X-Sender-IP: ".$_SERVER['REMOTE_ADDR']."\r\n";
$header .= "Message-ID: <".time()."-".$this->mail_absender.">\r\n";
$header .= "Reply-To: ".$this->mail_absender."\r\n";
$header .= "Return-Path: ".$this->mail_absender."\r\n"; // Was ist das?
$header .= "Date: ".date("r", time())."\r\n"; // RFC 822 formatiertes Datum
$header .= "Content-type: text/html; charset=\"iso-8859-1\"\r\n";
$header .= "Content-Transfer-Encoding: 8bit\r\n";
$header .= "From: ".$this->mail_absender."\r\n";
$header .= "MIME-Version: 1.0\r\n";
if ($this->copy_to_admin)
$header .= "BCC: ".$this->mail_absender."\r\n";
return mail($this->mail_empf, $this->mail_kopf, $this->mail_text, $header, "-f ".$this->mail_absender);
}
}
$m = new htmlEmail();
$m->mail_empf="martinm79xxxxx";
$m->mail_absender="verwaltungxxxxxx";
$m->mail_kopf="Hallo Test 1";
$m->mail_text="Und geht es.";
$m->copy_to_admin ="verwaltungxxxxx";
$m->senden();


Hast jemand denn ein Tipp, was noch falsch ist oder was noch fehlt?

pekka
16-02-2008, 15:25
X-Mailer und X-Sender-IP auf jeden Fall mal raus.
Und wie im Sticky gesagt, probiers mal mit einem GMX-Account, der verrät zumindest, welcher Teil des Spamfilters gegriffen hat (Textmuster, Absenderblacklist...)

martinm79
16-02-2008, 15:35
Ok, hab die beiden Sachen rausgenommen und mal zu gmx geschickt.

Von: verwaltungxxxxxxx.de ins Adressbuch
An: martinm79xxxgmxxxx
Betreff: Hallo Test 1
Datum: Sat, 16. Feb 2008 15:28:28 +0100


Die kam bei gmx wunderbar an.
Bei gmail.com landet sie aber im Spam Ordner und bei web.de kommt sie immer noch nicht an.

Die Email Benachrichtung von php resource.de kommt aber bei web.de prima durch.

Bin grad am überlegen ob ich mir ein Forum runterlade und da mal gucke. :confused:

pekka
16-02-2008, 15:37
Komisch.
Vergleich doch mal die Header von der PHP-Resource-Mail mit deiner. Vielleicht bringt das was.
Und nicht vergessen: Auch der Inhalt ist wichtig. Eine HTML-Mail mit einem verlinkten Bild und sonst nichts drin riecht z.B. automatisch nach Spam. Zeig doch mal einen Mailinhalt (Kannst ja zensieren, es geht nur um die Struktur).

martinm79
16-02-2008, 16:16
Also das kam gerade von web.de


A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

martinm79xxxweb.de
SMTP error from remote mail server after initial connection:
host mx-ha01.web.de [217.72.192.149]: 554 Transaction failed.



Und ich glaube langsam das web.de ein persönliches Problem mit meinem Anbieter hat.
Obwohl, bei google lande ich ja auch im Spam Ordner.
Ich möchte ja richtig in den Eingang kommen.

Das ist mein header in der Email:

Return-path: <supportxxx.de>
Received: from admn2210 by m5008.giga-dns.com with local (Exim 4.68)
(envelope-from <supportxxx.de>)
id 1JQOaA-0000aE-P8; Sat, 16 Feb 2008 16:04:02 +0100
To: martinm79xxx.de
Subject: Artikel eingetragen
Received: from [86.56.7.240] (helo=www.xxx.de)
Message-ID: <1203174242-supportxxx.de>
Reply-To: supportxxx.de
Date: Sat, 16 Feb 2008 16:04:02 +0100
Content-type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
From: supportxxx.de
MIME-Version: 1.0

Und das ist eine email von php-resource.de

Received: from [213.203.248.134] (helo=niclas.ebiz-webhosting.de)
by mx04.web.de with esmtp (WEB.DE 4.109 #226)
id 1JQNvf-0008Qp-00
for martinm79xxx.de; Sat, 16 Feb 2008 15:22:11 +0100
Received: by niclas.ebiz-webhosting.de (niclas.ebiz-webhosting.de, from userid 33)
id F2F39778113; Sat, 16 Feb 2008 15:25:37 +0100 (CET)
To: martinm79xxx.de
Subject: Antwort auf den Beitrag 'Absendedatum einer Email ?!'
From: "PHP script resource Mailer" <webmasterxxx.de>
Message-Id: <20080216142537.F2F39778113@niclas.ebiz-webhosting.de>
Date: Sat, 16 Feb 2008 15:25:37 +0100 (CET)
Sender: web1xxx.de

Also mir fällt jetzt nur noch ein, das ich mir mal ein Forum runterlade und angucke,
ob ich da etwas brauchbares finde.
Ich weiß nicht woran es liegen könnte. helo und so ist alles drinne.:dontknow:

Abraxax
16-02-2008, 17:54
wenn du mit deinem server auf irgendeiner blacklist bist, welche web.de anfragt, bevor die mail angenommen wird, bringt dir auch das ändern im code nicht.

wenn du die phpmailer-class nimmst, die sowieso im moment das beste ist (wo gibt :D), hast du keine probleme. richtig?

warum nimmst du dann nicht einfach die class , wie gesagt kenne ich nichts besseres , und nutzt diese?

martinm79
16-02-2008, 18:02
Ja, wenn ich mit der phpmailer-class die mails über mein google Account verschicke, kommen sie zumindest bei web.de in den Spam Ordner an.

Ist zwar nicht schön, aber wenigstens was.

Aber wenn ich die mails so verschicke dauert das 2 Sekunden.

Abraxax
16-02-2008, 21:22
nein. denn du kannst auch ein lokales smtp konto verwenden.

ich sende "rundmails" fast nur noch mit dem phpmailer (mindestens aber mit einer einfachen eigenen smtp-class) raus. das ist elegant und einfach.

wichtig ist halt nur, dass man direkt über das SMTProtokoll kommuniziert ... hier kannst du nämlich auch die verbindung aufrecht erhalten und direkt die nächste mail hinterher schicken.

martinm79
16-02-2008, 21:46
Also ok, auf Dauer werde ich mir eh ein eigenen Server nehmen müssen.
Wenn ich denn soweit bin,
kann ich denn auch auf eine Schwarze Liste kommen,
wenn jemand anderes vom Provider Spam verschickt
oder betrifft mich das jetzt nur weil ich mit mehren auf ein Speicherplatz bin?



So, für erstmal habe ich mir was gebastelt

class email{
function senden($to,$subject,$message,$from=false){
include(dirname(__FILE__)."/phpMailer_v2.1.0beta2/class.phpmailer.php");
include(dirname(__FILE__)."/phpMailer_v2.1.0beta2/class.smtp.php");
$mail=new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port

$mail->Username = "martinmxxgmail.com"; // GMAIL username
$mail->Password = "xxx"; // GMAIL password

$mail->From = $from?$from:"verwaltung@xxx.de";
$mail->FromName = $from?$from:"verwaltung@xxx.de";
$mail->Subject = $subject;
$mail->Body = "<html><head><title></title></head><body>".$message."</body></html>"; //HTML Body
#$mail->AltBody = "This is the body when user views in plain text format"; //Text Body

$mail->WordWrap = 50; // set word wrap

$mail->AddAddress($to,$to);
#$mail->AddReplyTo("noreply@web.de","Webmaster");
#$mail->AddAttachment("/path/to/file.zip"); // attachment
#$mail->AddAttachment("/path/to/image.jpg", "new.jpg"); // attachment

$mail->IsHTML(true); // send as HTML

#$mail->ErrorInfo
return $mail->Send();
#$mail->ClearAddresses();
}
}


Das kann ich später immer ändern wie ich möchte, hauptsache die Emails
fliegen raus.

Wenn ich jetzt den smtp von meinem localen Server anspreche, dann bin ich ja wieder auf der schwarzen Spamliste,
wenn ich nach web.de schicken möchte
oder ist das per smtp anders als mit der mail funktion?

Wie würde ich den localen SMTP ansprechen?
Port: 25
Host: localhost

Und denn noch mein Usernamen? Ich habe mom ja nur son billigen Speicherplatz beim Provider,
wußte/weiß ja nicht ob das da auch geht.
Also per Smtp

jahlives
18-02-2008, 09:59
@Martinm79
Und warum machst du desswegen keinen neuen Thread auf? Ich glaube ja nicht, dass es dir ebenfalls um das Ändern des Absendedatums geht??

-archiv-
--

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:00 Uhr.