[PHP] --> Anhang versenden (Programmieren)

[PHP] --> Anhang versenden (Programmieren)

Aloha!

Ich möchte mit Hilfe von PHP eine email mit Anhang versenden. Könnt ihr mir sagen, wie ich das mache?
am besten mit nem upload-skript, der din anhang auf deinen server lädt und dann in der email unten nur ein link zu der datei die hochgeladen wurde oO
was besseres weiß ich auch nit...
Also du öffnest den editor und tippst mal folgendes ein:

<?php
if ($senden) {
$sender = "Dein Name";
$sendermail = "info@bla.net";
$betreff = "Betreff von Testmail";
$text = "Testmail von codeschnipsel.net";

$header = "From: \"".$sender."\" <".$sendermail.">\n";
mail($empfaenger, $betreff, $text, $header);
echo "Mail erfolgreich gesendet!<BR><BR>";
}
else {
?>

<form action="<?php $PHP_SELF; ?>"method="post">
Deine Mail Adresse:<BR>
<input type="Text" name="empfaenger" size="30">
<input type="Submit" name="senden" value="Senden">
</form>

<?
}
?>


das speicherst du dann als name.php oder so.
Das lädste auf deinen unterstützen php-server hoch und rufst die datei auf.FERTIG!
bei deinem code da gibts nur ein problem...
was ist mit dem anhang? xD
eben :)

Mailversenden kann doch jeder ;)

@spezial hmm, also, ich weiß nicht, ob das:
ZITAT
am besten mit nem upload-skript, der din anhang auf deinen server lädt und dann in der email unten nur ein link zu der datei die hochgeladen wurde oO
ZITAT ENDE

so einfach bei funpic geht. wenn doch, kannst du mir den uploadskript mal sagen ^^
hmm dann nimm das hier:


<?
if ($senden) {
$pfad = "../upload";
$sizeabfrage = "yes";
$size = "20";

$body="<html><body bgcolor=#FFFFFF text=#000000>";
if ($file_name == "") {
echo $body;
die("Keine Datei gewählt.");
}
if (file_exists("$pfad/$file_name")) {
die($body."Datei bereits vorhanden.");
}
if ($sizeabfrage == "yes") {
if ($file_size > $size) {
echo $body;
die("Die Datei ist zu groß !");
}
}

$upload = "$file_name";
@copy($file, "$pfad/$upload") or die($body."Datei wurde nicht hochgeladen.");
echo $body;
echo "Datei hochgeladen";
}
else {
?>

<html>
<body bgcolor=#FFFFFF text=#000000 link=#ccff88 vlink=ccff88 alink=#ccff88>
<form action="<?php $PHP_SELF; ?>"method="post" enctype="multipart/form-data">
<p>Bitte Datei auswählen:<br>
<input type=file name=file>
<p><button name="senden" type="submit">Hochladen</button>
</form>
</body>
</html>

<?
}
?>
@Goldgolem:
Uploadskript bei Funpic? Kein Problem:
http://spezial.sp.funpic.de/upload/

hm...
ich mach mal nen skript wo beides drin ist, also email + anhang quasi ;)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>eMail mit Anhang versenden</title>
</head>
<?php
// Einstellungen:
// Verzeichnis, in das die Dateien hochgeladen werden;
// muss vorhanden sein und benötigt Schreiberechte (CHMOD 777):
$upload_dir = "anhang";
// Das Verzeichnis indem sich DIESE datei befindet (Wichtig für den empfänger da dieser sonst den anhang nicht öffnen kann!)
$domain = "http://spezial.sp.funpic.de/stuff";;
// maximale Dateigröße in KB:
$max_file_size = 999;
// erlaubte datei-Endungen:
$accepted_file_extensiones = array('jpg','jpeg','gif','png','txt','html','htm','ppt','rar','mpeg');
?>
<style type="text/css">
<!--
body { font-family: Verdana,Arial,Helvetica,sans-serif; color: #000000; font-size:13px; background-color: #fffff3; margin: 0px; padding: 20px; }
h1 { margin: 0px 0px 20px 0px; font-size:18px; font-weight:bold; }
.caution { color: red; font-weight: bold; }
.small { font-size: 11px; }
-->
</style>
<body>
<?php
if (isset($_FILES['probe']) && $_FILES['probe']['size'] != 0 && !$_FILES['probe']['error'] && $mail_to != "" && $text != "") {
unset($errors);
// endung ok?
$exts = explode(".", basename($_FILES['probe']['name']));
$file_extension = strtolower($exts[sizeof($exts)-1]);
if (!in_array($file_extension, $accepted_file_extensiones))
$errors[] = 'ungültige Datei-Erweiterung ('.$file_extension.')';
// dateigröße ok?
if ($_FILES['probe']['size'] > $max_file_size*1000)
$errors[] = 'Datei zu groß ('.number_format($_FILES['probe']['size']/1000,0,",","").' KB)';
// dateiname bereits vorhanden?
if (file_exists($upload_dir."/".basename($_FILES['probe']['name'])))
$errors[] = 'die Datei <b>'.$_FILES['probe']['name'].'</b> existiert bereits';

// wenn alles in ordnung, datei hochladen und mail verschicken:
if (empty($errors)) {
if (move_uploaded_file($_FILES['probe']['tmp_name'], $upload_dir.'/'.basename($_FILES['probe']['name']))) {
chmod($upload_dir.'/'.$_FILES['probe']['name'], 0644);
if (mail($mail_to,$title,$text.'

Anhang:
'.$domain.'/'.$upload_dir.'/'.$_FILES['probe']['name'],"From: \"".$name_from."\" <".$mail_from.">\n")) {
?><p><?php echo 'Die Mail wurde erfolgreich mit Anhang verschickt!'; ?></p>
<p class="small"><a href="<?php echo basename($_SERVER['PHP_SELF']); ?>">eine weitere Mail verschicken...</a></p><?php
}
else echo '<b>Fehler:</b> Die Mail konnte nicht versendet werden!';
}
else {
?><p><?php echo '<b>Fehler:</b> Die Datei '.$_FILES['probe']['name'].' konnte nicht hochgeladen werden!'; ?></p><?php
}
}
// ...ansonsten fehler ausgeben
else {
?><p class="caution">Fehler:</p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
}
}


// upload-formular anzeigen:
if (empty($_FILES['probe']) || $_FILES['probe']['size'] == 0 || isset($errors)) {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<b>Absender Name:</b><br>
<input type="text" name="name_from" style="width:200px;"><br>
<b>Absender eMail:</b><br>
<input type="text" name="mail_from" style="width:200px;"><br>
<b>Empfänger eMail:*</b><br>
<input type="text" name="mail_to" style="width:200px;"><br>
<b>Betreff:</b><br>
<input type="text" name="title" style="width:200px;"><br>
<b>Text:*</b><br>
<textarea name="text" style="width:200px; height:100px;"></textarea><br><br><b>Anhang:*</b><br>
<input type="file" name="probe" /><br><br>
<input type="submit" name="submit-button" value="OK - Mail verschicken">
</form>
<?php
}
?>
</body>
</html>



habe den skript selber getestet, der funktioniert ^^
musst vorher halt nur die Einstellungen ganz oben verändern :)
Logge dich ein um einen Beitrag zu schreiben.