Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » mailanhang vergrößer sich

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.04.2004, 14:00 Uhr
~Tomycat
Gast


hi,
Ich programmierte einen Funserver, der alle 2 tage eine mail verschickt
Morgen ist der 104te Jahrentag, dann soll das php 104.jpg mit dem Textinhalt von 104.txt an Leute verschickt werden.

das folgende Script funkt eigentlich,
in der mail3.txt sind 10 mal tomycat1000@yahoo.de drin, zum testen
sie ist so aufgebaut:

tomycat1000@yahoo.de
tomycat1000@yahoo.de
...

Mein Problemann wird jedes mal der der anhang vom 20 % größer, wobei nur das Bild 20KB groß ist.
1. Mail ca. 400 KB
2. Mail ca. 500 kb
...

PHP 4:
<?PHP

// Zahl des Tages auf's Jahr gesehen ermitteln und testweise ausgeben
$tage = date("z");
echo $tage;

// fuer den Fall das Script nicht gestartet wird in der folgenden Zeile den Kommentar entfernen
$tage = $tage+1;

// Datei fuer Tageskommentar oeffnen, auslesen, schliessen und testweise ausgeben
$fp = fopen($tage.".txt","r");
$gelaber = fgets($fp,100);
fclose($fp);
echo $gelaber;

// Schleife zum einlesen der eMail-Adressen aus Datei
$fp = fopen("mail3.txt","r");
$y = -1;

while (!feof($fp))
{
    $y++;
    $name[$y] = fgets($fp, 50);
}
fclose($fp);

// Schleife zum verschicken der Mails
for ($n=0;$n<count($name);$n++)
{
    echo $name[$n];

    $Empfaenger = $name[$n];
    $Betreff = "Tomycat ´s Witzmail";
    $Dateiname = $tage.".jpg";
    $DateinameMail = $tage.".jpg";
    $Header = "From: Tomycat <tomycat1000@yahoo.de>";
    $Trenner = md5(uniqid(time()));
    $Header .= "\n";
    $Header .= "MIME-Version: 1.0";
    $Header .= "\n";
    $Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
    $Header .= "\n\n";
    $Header .= "This is a multi-part message in MIME format";
    $Header .= "\n";
    $Header .= "--$Trenner";
    $Header .= "\n";
    $Header .= "Content-Type: text/plain";
    $Header .= "\n";
    $Header .= "Content-Transfer-Encoding: 8bit";
    $Header .= "\n\n";
    $Header .= $gelaber;
    $Header .= "\n";
    $Header .= "--$Trenner";
    $Header .= "\n";
    $Header .= "Content-Type: image/jpg; name=$DateinameMail";
    $Header .= "\n";
    $Header .= "Content-Transfer-Encoding: base64";
    $Header .= "\n";
    $Header .= "Content-Disposition: attachment; filename=$DateinameMail";
    $Header .= "\n\n";
    $Dateiinhalt .= fread(fopen($Dateiname, "r"), filesize($Dateiname));
    $Header .= chunk_split(base64_encode($Dateiinhalt));
    $Header .= "\n";
    $Header .= "--$Trenner--";

    mail($Empfaenger, $Betreff, $gelaber, $Header);
}
?>




Bearbeitung von Pablo:

Bitte, [ PHP ] TAGS selber benutzen!!!!


Dieser Post wurde am 12.04.2004 um 14:08 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.04.2004, 09:12 Uhr
stephanw
localhorst



Zitat:

PHP 4:
$Dateiinhalt .= fread(fopen($Dateiname, "r"), filesize($Dateiname));



Beim Drüberfliegen ist mir das aufgefallen, vielleicht ist es das ja schon: ".=" hängt an. Soll das so sein ?
--
Reden ist Schweigen und Silber ist Gold.

Dieser Post wurde am 13.04.2004 um 09:12 Uhr von stephanw editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.04.2004, 22:17 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


außerdem funktioniert sowas mit mail nicht richtig, da solltest du besser fsockopen und manuelles versenden benutzen (<- das klappt 1a)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.04.2004, 22:57 Uhr
~Tomycat
Gast


hi,

@stephanw

erstmal thx, jetzt habe ich es auch gesehen.:-)
Ich habe dem Punkt weggemacht,aber das gleich Problem tritt immernoch auf.
Schade.

@FloSoft

wenn ich fsock verwende, welche Zeilen, soll ich dann mit verändern?
Weil, ich das Bild 2 mal angeben muß.

mfg Tomycat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.04.2004, 09:10 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



PHP 4:
  $HOSTNAME = "smtp.test.com";

  $fp = fsockopen ($HOSTNAME, 25, &$errno, &$errstr, 30);
  if (!$fp)
  {
    echo "failed: $errstr ($errno)";
  }
  else
  {
    $ABSENDER = "test@test.com";
    $EMPFAENGER = "test2@test2.com";
    $BOUNDARY = md5(uniqid(time()));
    $TEXT = ".blahblashasldkasdas";
    $DATEINAME = "testdatei.txt";
    $DATEI_FP = fopen($DATEINAME, "rb");
    $DATEI = fread($DATEI_FP, filesize($DATEINAME));
    fclose($DATEI_FP);
    $MAIL = 'From: '.$ABSENDER.'
Reply-To: '
.$ABSENDER.'
Disposition-Notification-To: '
.$ABSENDER.'
Subject: Betreffzeile
MIME-Version: 1.0
Content-Type: multipart/mixed;
    boundary="'
.$BOUNDARY.'"
X-Priority: 1

This is a multi-part message in MIME format.

--'
.$BOUNDARY.'
Content-Type: text/plain
Content-Transfer-Encoding: 8bit

'
.$TEXT.'

--'
.$BOUNDARY.'
Content-Type: image/jpg; name='
.$DATEINAME.'
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename='
.$DATEINAME.'

'
.chunk_split(base64_encode($DATEI)).'

--'
.$BOUNDARY.'--

'
;
    echo fgets($fp,500)."<br>\n";
    fputs ($fp, "HELO localhost\r\n");
    echo fgets($fp,500)."<br>\n";
    fputs ($fp, "MAIL FROM: {$ABSENDER}\r\n");
    echo fgets($fp,500)."<br>\n";
    fputs ($fp, "RCPT TO: {$EMPFAENGER}\r\n");
    echo fgets($fp,500)."<br>\n";
    fputs ($fp, "DATA\r\n");
    echo fgets($fp,500)."<br>\n";
    fputs ($fp, str_replace("\n","\r\n",$MAIL)."\r\n.\r\n");
    echo fgets($fp,500)."<br>\n";
    fputs ($fp, "QUIT\r\n");
    fclose($fp);
    echo "done";



Du kannst alle Emails hintereinander senden, ohne jedesmal das socket zu öffnen und zu schliessen (also deine for-Schleife um den inneren block machen)
--
class God : public ChuckNorris { };

Dieser Post wurde am 15.04.2004 um 09:12 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.04.2004, 18:53 Uhr
~Tomycat
Gast


hi,
ich habe Empfänger, Adresse, Host vergeben,
Am Anfang habe ich <?PHP und am Ende ?> gesetzt.
Aber icvh verstehe nicht warum ich einen Fehler bekomme in Line 63,
da steht ?>

ICh habe den Quelltext 10 mal durchgelesen, fast alles verstanden,

?> ist doch nicht am Ende?`

mfg Tomycat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.04.2004, 19:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


haste vielleicht ein } vergessen, bei meinem code fehlt am ende eins
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.04.2004, 20:25 Uhr
~Tomycat
Gast


hi,
du hast recht, ich hatte garnicht die Klammern gedacht. :-)

Ich bekam jetzt folgende Meldung:

220 smtp001.mail.ukl.yahoo.com ESMTP
250 smtp001.mail.ukl.yahoo.com
530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html
done

So wie ich das verstehe, soll ich mich autosisieren. *lololo*
DIe netten Yahoo Lauten gaben wir sogar eien link :-)

Yahoo kennt kein php :-) Nur Outlo$c$k *lol* und anderen mail programme.
ich habe probiert vor smtp.mai..... tomycat1000@passwort einzupflücken, geht aber nicht

DAnn habe ich vor echo fgets($fp,500)."<br>\n";


fputs($fp, "tomycat1000");
fputs($fp, "passwort");

gesetzt, jetzt kommt folgende Meldung:
502 unimplemented (#5.5.1)
aber keine email in meinem Postfach rein
mfg Tomycat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.04.2004, 21:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


authentifizierung geht anders, da muss ich nochmals nachschaun, sobald ich es gefunden habe, poste ichs rein
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.04.2004, 10:01 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Ok Authentifizierung:

wenn man dem Server statt HELO EHLO sendet, zeigt er einem alle Auth-mechanismen an, z.b::


Code:
250-ma.ra-doersch.de
250-PIPELINING
250-SIZE 102400
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-XVERP
250 8BITMIME



AUTH LOGIN ist er am einfachsten zu verwendbare mechanismus (meist unverschlüsselt)
das läuft dann so ab:


Code:
220 ma.ra-doersch.de ESMTP Postfix
EHLO r2d2
250-ma.ra-doersch.de
250-PIPELINING
250-SIZE 102400
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-XVERP
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
%base64encodierterbenutzername%
334 UGFzc3dvcmQ6
%base64encodiertespasswort%
235 Go Ahead
MAIL FROM: ...
...


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: