Mail per php

  • Themenstarter Themenstarter flohhh
  • Beginndatum Beginndatum
habs hingekriegt :)

habe total vergessen, dass ich es hier noch melden wollte *uups*
falls du trotzdem noch interresiert bist(source-code) poste ich natürlich ;)

danke noch für eure hilfe :-)

GREEZ

N
O
X
 
nö, wenns geht brauchste net mehr zu posten ... es sei denn, bei meiner Beschreibung war was falsch !?


Dunsti
 
so wies mir ist gien etwas nicht bin mir aber nicht sicher!
es ist auch sochon bischen her ;)
 
hiho

hiho,
ich wollte diesem thread mal wieder aufwärmen ;)

also, hab ne html datei erstellt mit dem form-code... bei submit verweist er auf meine email.php, die dann die mail+attachment versenden soll...

der code sieht nun so aus:
PHP:
$mailtext= $HTTP_POST_VARS[mailtext];
$header = "From: $HTTP_POST_VARS[frommail]\nMIME-Version: 1.0\n Content-Type: multipart/mixed; boundary=\"========1234567\"";
$fd = fopen($HTTP_POST_VARS[file], "r");
    $anhang = chunk_split(base64_encode(fread( $fd, filesize($HTTP_POST_VARS[file]))));
fclose($fd);
$message = "--========1234567\nContent-Type: text/plain; charset=\"us-ascii\"\n
Content-Transfer-Encoding: 7bit\n\n\n".$mailtext."\n--========1234567\n
Content-Type: $file_type; name=$file_name\nContent-Transfer-Encoding: base64\n
Content-Disposition: attachment; filename=\"$file_name\"\n\n".$anhang;
//hab die 4 zeilen natürlich in eine geschrieben 
         mail($HTTP_POST_VARS[tomail],$HTTP_POST_VARS[subject],
              $message, $header);


mein problem... das, was als deklaration gedacht is ($message), also ab 1234567 usw. schreibt er als text in meine email... genau wie den zweiten teil für das Attachment...ich weiss nich, aber des krieg ich nich auf die reihe. aussedem würd mich interessiern, was die variablen $file_name und $file_type machen, da diese nirgends mit einem wert belegt werden, und somit auch in der mail so stehn $file_name="", was wohl nicht so sein sollte oder täusch ich mich (:))
wär echt nett wenn mir einer helfen kann, weil ich beiss mir hier die zähne aus ... :rolleyes:
thx schonmal, hoffentlich findet hier noch einer rein *gg*

EDIT:
damit ihr versteht was ich meine, so kommt die mail bei mir an :

--========1234567
Content-Type: text/plain; charset="us-ascii"

Content-Transfer-Encoding: 7bit


ich versuchs (//das is der $mailtext)
--========1234567
//hier sollten doch eigentlich auch werte drinstehn oder?
Content-Type: ; name=
Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename=""

QGVjaG8gb2ZmCmNscwogRGF0ZSAvdCAKIHRpbWUgL3QKZWNoby4gICAgICAgICAgICAgICAgIFtC
IEEgQyBLIFUgUCBTIEMgUiBJIFAgVCAxLjUgIEJ5IFdoaXp6bHkgqSAyMDAzXQplY2hvLiAgICAg
ICAgICAgICAgICAgICAgICAgICBbUyBPIFMgLSBTQVZFIE9VUiBTT1VORFpdCmVjaG8uLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KZWNoby4gICAgICAgICAgICAgICAgICAgIFByZXBhcmluZyBTeXN0
ZW0gZm9yIEJhY2t1cC4uLndhaXQuLi4KZWNoby4KSUYgTk9UIEVYSVNUIGM6XHNhbXBsZXNcICBt
ZCBjOlxzYW1wbGVzCklGIE5PVCBFWElTVCBjOlxhdWRpb1wgbWQgYzpcYXVkaW8KSUYgTk9UIEVY
SVNUIGM6XGN1YmFzZWFycnNcIG1kIGM6XGN1YmFzZWFycnMKZWNoby53b3JraW5nLi4uLgpJRiAi
da gehts noch ewig so weiter ;p

also nochmal thx schonmal
whizzly
 
Zuletzt bearbeitet:
Re: hiho

Whizzly hat gesagt.:
hiho,
ich wollte diesem thread mal wieder aufwärmen ;)

wer hat Dir das erlaubt? :-)


zum Thema: die Variablen $file_name und $file_type werden automatisch belegt, wenn Du eine Datei hochlädst. (ansonsten natürlich nicht)
Und wenn bei Dir register_globals auf OFF steht musst Du entsprechend diese verwenden: $HTTP_POST_VARS[file_name] und $HTTP_POST_VARS[file_type]


hope that helpz
Dunsti
 
Hi
ich hab folgendes script zusammengebastelt:
PHP:
<?
if ($aktion=="check"){
        if(eingabe_check($von,$betreff,$text)==1){ 
        $to = "meine@mail.com";
		$betr = $betreff;
		$from = $von;
		$header = "From: ".$from."\nMIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"========1234567\"";
		$fd = fopen($datei, "r");
   		$attachment = chunk_split(base64_encode(fread( $fd, filesize($datei))));
		fclose($fd);
		$nachr = "--========1234567\nContent-Type: text/plain; charset=\"us-ascii\"\nContent-Transfer-Encoding: 7bit\n\n\n".$text."\n--========1234567\nContent-Type: $file_type; name=$file_name\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment; filename=\"$file_name\"\n\n".$attachment;
  
		mail($to, $betr, $nachr, $header);
		echo "Wir bedanken uns f&uuml;r Ihr Feedback.<br><br>";
		echo "Von: ".$von."<br>";
		echo "Betreff: ".$betreff."<br>";
		echo "Ihr Text: ".$text."<br>";
		echo "<a href=\"feedback.php\" target=\"_self\">zur&uuml;ck</a>";
    }
    else{
        echo eingabe_check($von,$betreff,$text);
        formular_ausgabe($von,$betreff,$text);
    }
}
else{
    formular_ausgabe($von,$betreff,$text);
}

function formular_ausgabe($von,$betreff,$text){
    global $kurs;
	global $submit;
	$submit = $PHP_SELF."?aktion=check";
	global $PHP_SELF;                         
    echo "<form name=newmember action=\"".$submit."\" method=post enctype=\"multipart/form-data\">
          <table><tr><td colspan=2 align=left>Von (Ihre E-Mail)*</td></tr>
           <tr><td colspan=2><input class=input name=\"von\" type=text size=40 maxlength=40 value=\"".$von."\"></td></tr>
           <td colspan=2 align=left>Betreff*</td></tr>
           <tr><td colspan=2><input class=input name=\"betreff\" type=text size=40 maxlength=40 value=\"".$betreff."\"></td></tr>
		   <tr><td align=left>Ihr Text*</td></tr>
           <tr><td colspan=2><textarea scrolling=no class=input name=\"text\" rows=5 cols=30 wrap=virtual>".$text."</textarea></td></tr>
           <tr><td align=left>Datei anhängen</td></tr>
		   <tr><td colspan=2><input class=input name=\"datei\" type=file size=40 maxlength=40 value=\"Durchsuchen...\">
		   <tr><td>&nbsp;</tr></td>
		   <tr><td><input class=input1 type=reset value=\"L&ouml;schen\">&nbsp;<input class=input1 type=submit name=\"schreiben\" value=\"Senden\" onClick=\"return test()\"></td>
           <td>&nbsp;</td></tr></table><br><p>Die mit * gekennzeichneten Felder müssen ausgefüllt werden!</p>";
}
function eingabe_check($von,$betreff,$text){
    if ($von == "") { 
		$fehler = $fehler."<br>-Ihre E-Mail"; 
	} else { 
		if (strstr($von,"@") && strstr($von,".")){
			; 
		} else {
			$fehler = $fehler."<br>-Ihre korrekte E-Mail";
		}
	}
    if ($betreff == "") $fehler = $fehler."<br>-den Betreff"; 
    if ($text == "")  $fehler = $fehler."<br>-Ihr Feedback";
 
  if ($fehler =="") return 1;                   
  else{ return "Bitte geben sie noch<b>".$fehler."</b><br>ein.<br>";}
}
?>

is schön und gut, doch der anhang ist nen .txt-file, das heisst text3.txt. egal was ich als dateianhang sende, der anhang ist text3.txt, beinhaltet irgendwelche hieroglyphen (je nach anhang-> anderen inhalt)
wo liegt hier der fehler?
 
Re: ein kurzes Tut

Die Nachricht wird so codiert:
PHP:
$fd = fopen($file, "r");
$anhang = chunk_split(base64_encode(fread( $fd, filesize($file))));
fclose($fd);
$message = "--========1234567\nContent-Type: text/plain; charset=\"us-ascii\"\n
  Content-Transfer-Encoding: 7bit\n\n\n".$message."\n--========1234567\n
  Content-Type: $file_type; name=$file_name\nContent-Transfer-Encoding:
  base64\nContent-Disposition: attachment; filename=\"$file_name\"\n\n".$anhang;
// die letzten vier Zeilen in EINE Zeile schreiben !

Ich versteh die den Message-Aufbau nicht. Wie bekomme ich da meinen Text hinein? muss ich den davor setzen? Oder ist der an der Stelle ...".$Message."... entahlten?


MfG Radhad
 
Hallo,

ich habe auch das Skript von Dunsti abgetippt und angepasst aber irgendwie funktioniert da etwas nicht so ganz. Ich habe (wie schon nox) das Problem, dass die email total komisch aussieht. Und zwar so:

Code:
  --========1234567
  Content-Type: text/plain; charset="us-ascii"
  
  		   Content-Transfer-Encoding: 7bit
  
  
  dsfewdwefd wefwf ewfwfew
  --========1234567
  
  		   Content-Type: application/msword; name=Welpen.doc
  Content-Transfer-Encoding:
  		   base64
  Content-Disposition: attachment; filename="Welpen.doc"
  
  0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAJQAAAAAAAAAA
  EAAAJwAAAAEAAAD+////AAAAACQAAAD/////////////////////////////////////////////
  ////////////////////////////////////////////////////////////////////////////

Mein Formular sieht so aus:

HTML:
  <FORM ACTION="mail.php" METHOD="post" ENCTYPE="multipart/form-data">
  
  <table width="60%" border="0" cellspacing="0" cellpadding="2">
    <tr>
  	<td width="20%">Name:</td>
  	<td width="*"><INPUT TYPE="text" NAME="sender"></td>
    </tr>
    <tr>
  	<td width="20%">Email-Adresse:</td>
  	<td width="*"><INPUT TYPE="text" NAME="frommail"></td>
    </tr>
    <tr>
  	<td width="20%">Bemerkung:</td>
  	<td width="*"><TEXTAREA COLS="30" ROWS="10" NAME="bemerkung"></TEXTAREA></td>
    <tr>
  	<td width="20%">Dateianhang:</td>
  	<td width="*"><INPUT TYPE="file" NAME="file"></td>
    </tr>
    <tr>
  	<td width="20%">&nbsp;</td>
  	<td width="*"><INPUT TYPE="submit" value="Bewerbung abschicken"></td>
    </tr>
  </table>
  </FORM>

Und mein PHP-Code dazu so:

PHP:
  <?php
  $tomail = "info@dummie.de";
  $sender = stripslashes($sender);
  $frommail = stripslashes($frommail);
  $subject = "Onlinebewerbung von www.dummie.de";
  $bemerkung = stripslashes($bemerkung);
  $fd = fopen($file, "r");
  $anhang = chunk_split(base64_encode(fread( $fd, filesize($file))));
  fclose($fd);
  $header = "From: $sender <$frommail>\nMIME-Version: 1.0\n Content-Type: multipart/mixed; boundary=\"========1234567\"";
  $message = "--========1234567\nContent-Type: text/plain;
  		   charset=\"us-ascii\"\n
  		   Content-Transfer-Encoding: 7bit\n\n\n".$bemerkung."\n--========1234567\n
  		   Content-Type: $file_type;
  		   name=$file_name\nContent-Transfer-Encoding:
  		   base64\nContent-Disposition: attachment;
  		   filename=\"$file_name\"\n\n".$anhang;
  mail($tomail,$subject,$message,$header);
  ?>

Hat jemand eine Idee was ich falsch mache? Ich bin für jede Hilfe überaus dankbar.

Gruß Ukyo
 
Zurück