Email formulier met bijlage

Door Eris -, 23 jaar geleden, 26.716x bekeken

//mail formulier voor bijlage
$email ='[email protected]';

Uploaden en het moet meteen werken. Je moet wel zelf de layout enz... aanpassen.

Voorbeeld toegevoegd (Wordt verzonden naar een gmail adress van mij.)

Plaatjes die naarmij worden verzonden worden eigendom van me ^^

Voorbeeld: http://phphulp.phpclub.nl/262/email.php

Gesponsorde koppelingen

PHP script bestanden

  1. email-formulier-met-bijlage

 

Er zijn 82 reacties op 'Email formulier met bijlage'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
St.Chessere
St.Chessere
23 jaar geleden
 
0 +1 -0 -1
Wat als ik nou meerdere bijlages wil versturen??
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
dan moet je het zelf maar aanpassen :)

$body.= "--".bound."\r\n";
//content type + naam bestand (database.sql)
$body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";
//codering
$body .= "Content-Transfer-Encoding: base64\r\n";
//als bijlage toegevoegd
$body.= "Content-disposition: attachment\r\n";
$body .= "\n";
dit moet dan herhaald worden in een foreach ofzo...


23 jaar geleden
 
0 +1 -0 -1
'k Krijg "Notice: Undefined variable: submit in c:\apache + php\easyphp1-7\www\mail.php on line 6". Wat nu?
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
Je error reporting aan passen. Zoek functie van het forum gebruiken.


23 jaar geleden
 
0 +1 -0 -1
heb dit script opgeslagen als test.php, als ik de pagina open krijg ik een wit scherm?
Hipska BE
Hipska BE
23 jaar geleden
 
0 +1 -0 -1
error on line 57:
mail($email,$_POST['subject'],$bericht,$headers);
unexpected T_STRING
Bram Z
Bram Z
23 jaar geleden
 
0 +1 -0 -1
wa staad er op het lijntje ervoor


23 jaar geleden
 
0 +1 -0 -1
heb zelfde error als Hipska
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
Er was een ; vergeten. Het is aangepast ^^


23 jaar geleden
 
0 +1 -0 -1
kan dit ook zo aangepast worden dat er alleen jpg bestanden te versturen zijn?
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
Ja je moet dan wel een controle in bouwen ^^


23 jaar geleden
 
0 +1 -0 -1
en hoe doe ik dit?
Alvast bedankt!


23 jaar geleden
 
0 +1 -0 -1
$_FILES['file']['type'] moet je dan checken, als dit image/jpeg of image/pjpeg is dan doorgaan anders niet.

www.n0thing.org


23 jaar geleden
 
0 +1 -0 -1
kan iemand me uitleggen wat de boundary inhoud en wat het doet.

thanx alvast
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
Boundery == scheiding teken


23 jaar geleden
 
0 +1 -0 -1
Kan je niet gewoon zonder allemaal versiering gewoon een form mailen zonder bijlage
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
Wel hoor ^^


23 jaar geleden
 
0 +1 -0 -1
ik heb een mailfornulier gemaakt met 5 keer een upload van een foto
ik krijg wel 5 foto's aan in mijn mail maar het zijn 5 dezelfde foto's ?

ik heb dit vijf keer in mijn bestand staan
$body.= "--".bound."\r\n";
//content type + naam bestand (database.sql)
$body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";
//codering
$body .= "Content-Transfer-Encoding: base64\r\n";
//als bijlage toegevoegd
$body.= "Content-disposition: attachment\r\n";
$body .= "\n";

maar dan praat Jaap over foreach ofzo :
wat doe ik verkeerd??

Frank


23 jaar geleden
 
0 +1 -0 -1
als ik geen bestand invoer krijg ik wel een bijlage meegezonden?
en dat is vijf keer een .dat bestand

zie bestand dat ik aan het testen ben
http://www.tippelx.nl/formulier/email_foto_vijf.php
wie kan me helpen


23 jaar geleden
 
0 +1 -0 -1
heej,

Ik wil graag meerdere velden in het form hebben. Dus niet alleen bericht. kan dit? Mij lukt het niet.. En als ik een invoer zonder bijlage verzend komt er een foutmelding...

Gr. Bk


23 jaar geleden
 
0 +1 -0 -1
Als ik dit naar me outlook stuur krijg wordt het bestand niet geconverteerd maar blijft het codering. Heb al enigsinds wat instellingen veranderd maar zonder resultaat. Iemand ideeen hoe dit opgelost kan worden?


23 jaar geleden
 
0 +1 -0 -1
Bovenstaand voorbeeld gaat uit van een reeds bestaand bestand om mee te sturen, wat nu als ik formuliervelden of data uit een database in een nog te maken bijlage wil stoppen, bijvoorbeeld een txt-bestandje? Heeft iemand een tip?


23 jaar geleden
 
0 +1 -0 -1
Als ik een foto wil toevoegen krijg ik dit in de bijlage als .dat bestand hoe kan ik dit oplossen?


23 jaar geleden
 
0 +1 -0 -1
Een zendknop erbij zetten zou wel zo gemakkelijk zijn!
http://www.simsplanet2.com/Aa/mailmetfile.php


23 jaar geleden
 
0 +1 -0 -1
Geen bestand meesturen geeft een foutmelding en een lege .dat bijlage.
Zo moet je een bestand mee laten sturen:
//check filesize
if($_FILES['file']['size'] > 1024*1){
if($_FILES['file']['size'] < 1024*200){ .........
}else{
echo 'Bestands grootte is te groot';
}
}else{
echo 'u heeft geen bestand geselecteerd om mee te sturen';
}


23 jaar geleden
 
0 +1 -0 -1
Waarom kunnen er geen grote bestanden worden verzonden? Als de bestanden 1 MB of groter zijn krijg ik de volgende melding;
Warning: fread(): supplied argument is not a valid stream resource in /var/www/html/kranten/mail.php on line 21

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/kranten/mail.php on line 22
Email (Met een bijlage) is verzonden

ik krijg wel het mailtje, maar er zit een bijlage van 0k bij.
Ik heb de size op 1024*1024*8 staan.

Als ik de size op 8388608 zet krijg ik een half bestand binnen.

Wie kan mij hier ff helpen?

Groet,
MArco


23 jaar geleden
 
0 +1 -0 -1
Vreemd, script werkt wel op een andere server. Maar nu mailt hij niet. hij loopt wel netjes door de code heen zonder foutmeldingen. iemand ideeen??
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Heb je misschien een fout of een niet ingevulde waarde staan in je php.ini bij het smtpblokje... Ik vermoed dat de mail()-functie iets fout doet.


23 jaar geleden
 
0 +1 -0 -1
\r\n"; $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n"; $headers .= "MIME-Version: 1.0\r\n"; //email bestaat uit meerdere bestanden dus vertel wat de scheidings teken is en dat het een multipart is $headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n"; //we zenden een attachment mee $headers .= "Content-Disposition: attachment\r\n"; //readfile $fp = fopen($_FILES['file']['tmp_name'],'r'); $bestand = fread($fp,$_FILES['file']['size']); fclose($fp); //create body //generenen een body. Dit is een multi part gezeik $body.= "This is a multi-part message in MIME format.\r\n"; $body.= "\r\n"; //boundary $body.= "--".bound."\r\n"; //content type + charater set (iso in dit geval) $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n"; //codering (7 bit) $body.= "Content-Transfer-Encoding: 7bit\r\n"; $body.= "\r\n"; //het bericht $body.= $_POST['bericht'] ."\r\n"; //boundary $body.= "--".bound."\r\n"; //content type + naam bestand (database.sql) $body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n"; //codering $body .= "Content-Transfer-Encoding: base64\r\n"; //als bijlage toegevoegd $body.= "Content-disposition: attachment\r\n"; $body .= "\n"; //de inhoud van het bestand $body .= chunk_split(base64_encode($bestand )) . "\r\n"; mail($email,$_POST['subject'],$body,$headers); echo 'Email (Met een bijlage) is verzonden'; }else{ echo 'Bestands groote is te groot'; } }else{ $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n"; $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $bericht = $_POST['bericht']; mail($email,$_POST['subject'],$bericht,$headers); echo 'Email (Zonder een bijlage) is verzonden'; } }else{ //mail formulier je moet zelf het fomullier maken ?>
' method='post' enctype='multipart/form-data'> Naam:
Email:
Onderwerp:
Bestand:
Bericht:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
}
?>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nieuwe pagina 1</title>
</head>

<body>


</body>

</html>



IK KRIJG DIT MET FRONTPAGE
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
Adem server ondersteund geen php


23 jaar geleden
 
0 +1 -0 -1
Ik heb via www.webawere.com en site , server zegt dat ie php acces wel heeft ik heb ook een mysql database server maar daar kan ik niet mee werken. php moet het doen
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Je noemt je pagina toch wel bestandsnaam.php hoop ik


23 jaar geleden
 
0 +1 -0 -1
Ik heb dit script opgeslagen als email.php maar als ik hem open krijg ik een wit scherm. Ik heb toen een html bestand gemaakt en heb toen bij action naar dat bestand verwezen maar dat dee het ook niet. Wat moet ik doen?


23 jaar geleden
 
0 +1 -0 -1
Bij sommige mailadressen werktie wel, bij sommige anderen niet :S

Kan iemand uitleggen waarom niet?

dus $email = "";
heeft dan alleen een andere waarde (verschillende emailadressen). IN geval 1 gaat het goed, in geval 2 geeft hij de code van t plaatje weer (plain text)... :S


23 jaar geleden
 
0 +1 -0 -1
Ik krijg deze foutmelding:
Parse error: parse error, unexpected T_STRING in /www/htdocs/holstein/test/test.php on line 8

Wat doe ik fout????
Ik ben een super beginneling!
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Post lijn 8 eens
Zie ook het phpfaq
Jacco
jacco
23 jaar geleden
 
0 +1 -0 -1
dit is wat ik krijg niet helemaal goed denk ik.

http://www.valkenklasse.nl/test/email.htm
Eris -
Eris -
23 jaar geleden
 
0 +1 -0 -1
Op slaan als een php bestand :?
Jacco
jacco
23 jaar geleden
 
0 +1 -0 -1
Method Not Allowed
The requested method POST is not allowed for the URL /test/test.php.


--------------------------------------------------------------------------------

Apache/1.3.29 Server at www.valkenklasse.nl Port 80

wat kan ik hier aan doen


23 jaar geleden
 
0 +1 -0 -1
En dezee dan? in lijn 11: if(!empty($_FILES['file'])){


23 jaar geleden
 
0 +1 -0 -1
Weer een foutmelding
Parse error: parse error, unexpected T_STRING in /www/htdocs/holstein/test/2test.php on line 10
Dat is deze lijn: if(!empty($_FILES['file'])){

Ik heb alles geprobeerd, ik snap het niet!!!!!
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Dan is het meestal de regel daarboven waar je een ) of een ; of een '/" bent vergeten.


23 jaar geleden
 
0 +1 -0 -1
Oke dank je, maar dan kan ik niet vinden wat fout is:
Hier de bovenstaande regels:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
//mail formulier voor bijlage
$email='[email protected]';
//geneer boundary
DEFINE('bound',md5(uniqid(time())));
//check request method
if($_SERVER['REQUEST_METHOD']=='POST')
{
  
//if file upload send with email as mixed
if(!empty($_FILES['file'])){
El Bekko
El Bekko
23 jaar geleden
 
0 +1 -0 -1
Werkt :D
Ruliezz liezz
Ruliezz liezz
23 jaar geleden
 
0 +1 -0 -1
werkt wel met verzenden maar krijg allemaal code in mijn outlook dus dat is niet de bedoeling kijk ik gewoon op de server dan is hij goed. Maar wil hem gewoon goed zien in outlook!!!
Martin
Martin
23 jaar geleden
 
0 +1 -0 -1
waar plak ik een controller tussen als ik alleen wil dat men bijvoorbeeld alleen doc files kan sturen?


23 jaar geleden
 
0 +1 -0 -1
Tjitske, nog aan het proberen?
Zet de { eens terug op het einde van regel 7. Dus achter de ...OST')


22 jaar geleden
 
0 +1 -0 -1
De submit-buttom staat er nu niet meer bij!
Het is enkel maar een tip hoor,
Groetjes


22 jaar geleden
 
0 +1 -0 -1
Ik heb bovenstaande code letterlijk overgenomen, maar hij werkt dan niet bij mij. Ik krijg foutmeldingen in de regels 20, 21 en 22 na verzenden. Maar als ik die regels verwijder werkt het wel, maar dan krijg ik een mail met bijlage, maar dan zonder inhoud (0 byte). Wat gaat er fout.

$fp = fopen($_FILES['file']['tmp_name'],'r');
$bestand = fread($fp,$_FILES['file']['size']);
fclose($fp);


De foutmelding na het drukken van verzenden:

Warning: fopen(): open_basedir restriction in effect. File(/tmp/phpdvjJ5B) is not within the allowed path(s): (.) in /mnt/storage-emc1/g/gi/gielmobiel.nl/html/testvote/test1.php on line 20

Warning: fopen(/tmp/phpdvjJ5B): failed to open stream: Operation not permitted in /mnt/storage-emc1/g/gi/gielmobiel.nl/html/testvote/test1.php on line 20

Warning: fread(): supplied argument is not a valid stream resource in /mnt/storage-emc1/g/gi/gielmobiel.nl/html/testvote/test1.php on line 21

Warning: fclose(): supplied argument is not a valid stream resource in /mnt/storage-emc1/g/gi/gielmobiel.nl/html/testvote/test1.php on line 22
Email (Met een bijlage) is verzonden
Eris -
Eris -
22 jaar geleden
 
0 +1 -0 -1
$fp = fopen($_FILES['file']['tmp_name'],'r');
$bestand = fread($fp,$_FILES['file']['size']);
fclose($fp);

Hiermee wordt de bestand ingelezen. Maar blijkbaar mag je dat niet van je prvoder


22 jaar geleden
 
0 +1 -0 -1
Bedankt Iris, het lag inderdaad aan de provider. Het formulier werkt. Nu zit ik met het volgende. Ik ben er al een tijdje mee aan het prutsen geweest, maar het lukt nog niet. Ik heb mijn website gemaakt met templates. Hoe zorg ik er voor dat het formulier goed op de pagina komt? Als het goed is moet je de code dan splitsen. Een deel helemaal bovenin de (html)code en de code van het formulier in de body. Alvast bedankt


22 jaar geleden
 
0 +1 -0 -1
Het is al gelukt.
Eris -
Eris -
22 jaar geleden
 
0 +1 -0 -1
E[/B]ris!!!!!!!!!!!!!! GEEN I[/B]ris


22 jaar geleden
 
0 +1 -0 -1
Mijn welgemeende excuses, Eris!
Vitens
vitens
22 jaar geleden
 
0 +1 -0 -1
Hmm, ik zit nu al een tijdje met dit script te worstelen en door de reacties te lezen wordt het er niet beter op, eerder ingewikkelder. Tìs toch een beginnersscript?
Helaas kom er nog niet uit.
Er staat een fout in het script, niets meesturen levert een lege .dat bijlage op.


Dit heb ik :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
//mail formulier voor bijlage
$email ='email@email';
//geneer boundary
DEFINE('bound',md5(uniqid(time())));
//check request method
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//if file upload send with email as mixed
if(!empty($_FILES['file'])){
//check filesize
if($_FILES['file']['size'] < 1024*5){
   $headers = "From: ".$_POST['url']." <".$_POST['email'].">\r\n";
   $headers .= "Reply-To: ".$_POST['url']." <".$_POST['email'].">\r\n";
   $headers .= "MIME-Version: 1.0\r\n";
   // Wat is de maximale groote van het bestand in bytes ( 1 kb = 1000 bytes )
   $max = "70000";  

   // Welke extensies kunnen er worden geupload ( als alles mag dan niks invullen )
   $ext = "jpg JPG gif GIF png PNG";
  
   //email bestaat uit meerdere  bestanden dus vertel wat de scheidings teken is en dat het een multipart is
   $headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n";
   //we zenden een attachment mee
   $headers .= "Content-Disposition:  attachment\r\n";

   //create body
   //generenen een body. Dit is een multi part gezeik

   $body.= "This is a multi-part message in MIME format.\r\n";
   $body.= "\r\n";
   //boundary
   $body.= "--".bound."\r\n";
   //content type + charater set (iso in dit geval)
   $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
   //codering (7 bit)
   $body.= "Content-Transfer-Encoding: 7bit\r\n";
   $body.= "\r\n";
   //het bericht
   $body.= $_POST['url'] ."\r\n";
   $body.= $_POST['titel/alt'] ."\r\n";
   $body.= $_POST['img_nr'] ."\r\n";
   $body.= $_POST['email'] ."\r\n";
   //boundary
   $body.= "--".bound."\r\n";
   //content type + naam bestand (database.sql)
   $body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";
   //codering
   $body .= "Content-Transfer-Encoding: base64\r\n";
   //als bijlage toegevoegd
   $body.= "Content-disposition: attachment\r\n";
   $body .= "\n";
   //de inhoud van het bestand
   $body .= chunk_split(base64_encode($bestand )) . "\r\n";
   mail($email,$_POST['titel/alt'],$body,$headers);
    echo 'Uw aanvraag met afbeelding is correct verzonden, na acceptatie zal uw link z.s.m. op de homepage staan';
}
else{
echo 'Uw afbeelding is te groot of het formaat is onjuist. Alleen gif/jpg/png, max. 20x20 pixels <a href="free.php">overnieuw</a>';
}
}
else{  
   $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";
   $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
   $headers .= "MIME-Version: 1.0\r\n";
   $bericht = $_POST['email'];
   $bericht = $_POST['img_nr'];
   $bericht = $_POST['url'];
   $bericht = $_POST['titel/alt'];
   mail($email,$_POST['titel/alt'],$bericht,$headers);
   echo 'U heeft geen afbeelding geselecteerd om mee te sturen.';
}
 }
else{
//mail formulier je moet zelf het fomullier maken
?>


Kan iemand mij helpen?
Vitens
vitens
22 jaar geleden
 
0 +1 -0 -1
Leest iemand dit nog wel?
Willem Jan Z
Willem Jan Z
22 jaar geleden
 
0 +1 -0 -1
Probeer het eens in het forum te posten


22 jaar geleden
 
0 +1 -0 -1
Ja. Heel veel mensen post hun problemen hier. Dit is voor commentaar, suggesies, opmerkingen en aanmerkingen op een script. Niet voor problemen.
Vitens
vitens
22 jaar geleden
 
0 +1 -0 -1
Ik post het in het forum.
Olaf Lederer
Olaf Lederer
22 jaar geleden
 
0 +1 -0 -1
Hoi,

Ik heb ook een paar mail scripts geschreven die mails met bijlage versturen.

Heeft iemand ook problemen bij het versturen van dit soort mail naar een lycos adres?
(het probleem wat ik zie is dat de bijlage(n) niet goed aankomen, doe ik dezelfde mail vanaf een goedwerkende mail account forwarden is het goed)

gr. Olaf
Nicolas
Nicolas
22 jaar geleden
 
0 +1 -0 -1
Ik wil dat het onderwerp altijd hetzelfde is.

bv. Site-mail

Hoe doe ik dat?
Nicolas
Nicolas
22 jaar geleden
 
0 +1 -0 -1
Ik weet nog altijd niet goed hoe ik meerdere bijlagen kan versturen
Huh bla
Huh bla
22 jaar geleden
 
0 +1 -0 -1
@Nicolas

<input type='text' name='subject'>
vervangen door:
<input type='hidden' name='subject' value='Site-mail'>

dan word het een onzichtbare input box, met standaard de value site-mail ;-)
je moet dan natuurlijk wel 'onderwerp:' weghalen voor de input box
Nicolas
Nicolas
22 jaar geleden
 
0 +1 -0 -1
Thnx,
maar Ik weet nog altijd niet goed hoe ik meerdere bijlagen kan versturen
Huh bla
Huh bla
22 jaar geleden
 
0 +1 -0 -1
meerdere mailtjes sturen :-p
Piet
Piet
22 jaar geleden
 
0 +1 -0 -1
Zo werkt ie wel!!!!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?
//mail formulier voor bijlage
$email ='[email protected]';
//geneer boundary
DEFINE('bound',md5(uniqid(time())));
//check request method
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//if file upload send with email as mixed
//check filesize

 if($_FILES['file']['size'] ==0){  
   $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";  
   $headers .= "MIME-Version: 1.0\r\n";  
   $bericht = $_POST['bericht'];  
   mail($email,$_POST['subject'],$bericht,$headers);  
   echo 'Email (Zonder een bijlage) is verzonden';  
 }
else{  
$headers = "From: $JouwWebsiteNaam <$JouwEmail>\n";
   $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";  
   $headers .= "MIME-Version: 1.0\r\n";  
   $headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n";
   $headers .= "Content-Disposition:  attachment\r\n";
   $fp = fopen($_FILES['file']['tmp_name'],'r');  
   $bestand = fread($fp,$_FILES['file']['size']);  
   fclose($fp);
   $body.= "This is a multi-part message in MIME format.\r\n";  
   $body.= "\r\n";  
   $body.= "--".bound."\r\n";  
   $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";  
   $body.= "Content-Transfer-Encoding: 7bit\r\n";  
   $body.= "\r\n";  
   $body.= $_POST['bericht'] ."\r\n";  
   $body.= "--".bound."\r\n";  
   $body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";  
   $body .= "Content-Transfer-Encoding: base64\r\n";  
   $body.= "Content-disposition: attachment\r\n";  
   $body .= "\n";  
   $body .= chunk_split(base64_encode($bestand )) . "\r\n";  
   mail($email,$_POST['subject'],$body,$headers);  
    echo 'Email (Met een bijlage) is verzonden';    $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";  



 }  


 }
else{  
//mail formulier je moet zelf het fomullier maken
?>

<form action='
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['php_self'];?>
' method='post' enctype='multipart/form-data'><br />
Naam:<input type='text' name='from'><br><br />
Email:<input type='text' name='email'><br><br />
Onderwerp:<input type='text' name='subject'><br><br />
Bestand:<input type='file' name='file'><br><br />
Bericht:<textarea name='bericht'></textarea><br /><br />
<input type="submit"value="Verzenden"><br />
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? } ?>
Bryanpie2
Bryanpie2
22 jaar geleden
 
0 +1 -0 -1
IS dit met of zonder SQL?
Bryanpie2
Bryanpie2
22 jaar geleden
 
0 +1 -0 -1
hoe zou ik hem naar 2 mensen kunnen mailen?

iets met cc of is het gewoon
$email ='[email protected]' '[email protected]';

wil iemand ff reageren?
Arjan Kapteijn
Arjan Kapteijn
22 jaar geleden
 
0 +1 -0 -1
Bryanpie2, kijk eens naar phpmailer. Dat is veel makkelijker in gebruik, efficienter en je hoeft er zelf niet echt voor te kunnen programmeren... er staan ook goede voorbeelden op hun website.

En verwacht niet dat mensen binnen 3 minuten reageren, als je dat graag wilt zou je met deze mensen een afspraak moeten maken.
Franko
Franko
22 jaar geleden
 
0 +1 -0 -1
Hey.

Ik ben al een tijdje aan het stoeien met dit script, maar wat ik ook probeer ik krijg alleen maar .dat files in mijn email binnen ipv .txt of ,jpg's wat is het probleem?
Mijn provider moet het aankunnen!

Groetjes,
Frank
Franko
Franko
22 jaar geleden
 
0 +1 -0 -1
Hij maakt er een test.dat of Test.dat van. Terwijl het om een andere naam gaat.
ik heb geen ideeen meer.

Wie kan mij helpen?
Jozef
Jozef
21 jaar geleden
 
0 +1 -0 -1
Hallo;
Wanner ik het scriptje uitvoer dan krijg ik onderstaande foutmelding:

Notice: Undefined variable: body in C:\Server\Apache2\htdocs\mail\mail_attach_1\mail2.php on line 31
Email (Met een bijlage) is verzonden.

Wie weet de reden iervan?
Edwin
Edwin
21 jaar geleden
 
0 +1 -0 -1
Goed script :P
Ik gebruik hem nu voor een wedstrijd systeem :D
Roel
Roel
21 jaar geleden
 
0 +1 -0 -1
Nou ik heb um gefixt met CONROLE op Post from , Bericht, Subject en File

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
                  <?php
//mail formulier voor bijlage
$email ='HIER JE MAIL!';
//geneer boundary
DEFINE('bound',md5(uniqid(time())));
//check request method


    if($_SERVER['REQUEST_METHOD'] == 'POST')
  if($from == "" || $email == "" || $subject == "" || $file == "" || $bericht == "")
  {

     echo "<center><small><font face=\"Arial\">Gelieve alle velden correct in te vullen.<br><a href=\"javascript:history.back(-1)\">Probeer het opnieuw</a></font></small></center>";
  }

  elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $email))
  {

     echo "<center><small><font face=\"Arial\">Gelieve een geldig e-mailadres in te vullen.<br><a href=\"javascript:history.back(-1)\">Probeer het opnieuw</a></font></small></center>";
  }

  else
  {
         //if file upload send with email as mixed
         if(!empty($_FILES['file']['name']))
         {

            //check filesize
             if($_FILES['file']['size'] < 1024*1024)
             {

                  $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";
                $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
                   $headers .= "MIME-Version: 1.0\r\n";
                   //email bestaat uit meerdere  bestanden dus vertel wat de scheidings teken is en dat het een multipart is
                   $headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n";
                   //we zenden een attachment mee
                   $headers .= "Content-Disposition:  attachment\r\n";
                   //readfile
                   $fp = fopen($_FILES['file']['tmp_name'],'r');
                   $bestand = fread($fp,$_FILES['file']['size']);
                   fclose($fp);
                   //create body
                   //generenen een body. Dit is een multi part gezeik

                   $body.= "This is a multi-part message in MIME format.\r\n";
                   $body.= "\r\n";
                //boundary
                $body.= "--".bound."\r\n";
                //content type + charater set (iso in dit geval)
                $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
                //codering (7 bit)
                $body.= "Content-Transfer-Encoding: 7bit\r\n";
                $body.= "\r\n";
                //het bericht
                $body.= $_POST['bericht'] ."\r\n";
                //boundary
                $body.= "--".bound."\r\n";
                //content type + naam bestand (database.sql)
                $body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";
                //codering
                $body .= "Content-Transfer-Encoding: base64\r\n";
                //als bijlage toegevoegd
                $body.= "Content-disposition: attachment\r\n";
                $body .= "\n";
                //de inhoud van het bestand
                $body .= chunk_split(base64_encode($bestand )) . "\r\n";
                mail($email,$_POST['subject'],$body,$headers);
                echo 'Email (Met een bijlage) is verzonden';
            }

            else
            {
                 echo 'Bestands groote is te groot';
             }
        }

        else
        {
            $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";
               $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
               $headers .= "MIME-Version: 1.0\r\n";
               $bericht = $_POST['bericht'];
               mail($email,$_POST['subject'],$bericht,$headers);
               echo 'Email (Zonder een bijlage) is verzonden';
         }
     }

     else
     {
        //mail formulier je moet zelf het fomullier maken

        echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"POST\" enctype=\"multipart/form-data\">";
         echo "Naam: <input type='text' name='from'><br>";
         echo "Email:<input type='text' name='email'><br>";
         echo "Onderwerp:<input type='text' name='subject'><br>";
         echo "Bestand:<input type='file' name='file'><br>";
         echo "Bericht:<textarea name='bericht'></textarea><br />";
        echo "<input type=\"submit\" value=\"Verzenden\">";
    }

?>
Coen
Coen
20 jaar geleden
 
0 +1 -0 -1
Ik heb de code van Eris (bovenin) getest en krijg geen plaatje in de bijlage maar heel veel code zoals dit (klein stukje) in mijn email:

8AAEQgAHgAoAwEiAAIRAQMRAf/EAHwAAAIDAQAAAAAAAAAAAAAAAAQFAAEDAgEAAwEAAAAAAAAAAAAAAAAAAQIDBBAAAgEDAgQEBgMAAAAAAAAAAQIDABEEIRIxQSITYXEyQlGRsTMUBXIjBhEAAgECBAUFAAAAAAAAAAAAAQIAERI

Wat te doen?
- -
- -
20 jaar geleden
 
0 +1 -0 -1
Ik heb een foutje ontdekt: door de header "Content-Disposition: attachment" mee te sturen denkt Gmail dat het hele bericht een bijlage is. Als je deze header weghaalt werkt het prima.
Stefan Verhoef
Stefan Verhoef
20 jaar geleden
 
0 +1 -0 -1
Ik heb een script gemaakt welke pdf bestande weergeeft op een pagina. Nu zou ik graag een fomulier willen maken waar in de bestanden van het hiervoor genoemde script worden weergeven met daar voor een checkbox. via een formulier moeten deze bestanden dan per email naar een email adres worden gestuurd dat in het formulier wordt opgegeven.

Kan iemand mij hierbij helpen? ik hoop het!

Dit is de code die ik heb om de bestanden weer te geven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

    $dir
= opendir('images/upload/prijslijsten');

    // Haal de gegevens uit dir
    while (false !== ($file = readdir($dir))) {
        if (($file !== ".") and ($file !== "..")) {
        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
if ($ext == "pdf") {

//placeholders array
$zoeknaar = array('_', '.pdf');
//male replace values array
$vervang = array(' ', '<BR>');

//male string
$uitkomst = str_replace($zoeknaar, $vervang, $file);

            echo "<a href='http://www.website.nl/images/upload/prijslijsten/" . $file . "'>" . $uitkomst . "</a>";  
            
            }
        }
}

?>
Jan Haesen
Jan Haesen
18 jaar geleden
 
0 +1 -0 -1
Hoelang duurt het ongeveer voordat je die email krijgt. Want ik heb nog niks binnen.
Arjan jansen
arjan jansen
18 jaar geleden
 
0 +1 -0 -1
Hallo

Als ik de code neem en die online zet.
Krijg ik de melden dat niet allee velden zijn ingevuld terwijl dat wel zo is.
Hoe kan dat??????????????????????????????????


Arjan
Tymo M
Tymo M
18 jaar geleden
 
0 +1 -0 -1
Hallo,

Al met al zit het me wat tegen met de aanpassing van het script. Volgens mij heb ik ergens wat slordige fouten zitten in het script.
Ik kom er alleen niet achter waar ze zitten.
Zodra je een bestand selecteert dan kan hij deze niet meesturen, de volgende error:

"Fatal error: Call to undefined function: mail() in /home/httpd/vhosts...etc"

Hij strandt op de regel
"mail($email,$_POST['vindplaats'],$bericht,$headers);"

Wie ziet de fout?

Alvast bedankt voor de hulp!

mvg,
Tymo

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<?php
//mail formulier voor bijlage
$email ='[email protected]';
//geneer boundary
DEFINE('bound',md5(uniqid(time())));
//check request method

    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {

         //if file upload send with email as mixed
         if(!empty($_FILES['file']['name']))
         {

            //check filesize
             if($_FILES['file']['size'] < 1024*1000)
             {

                  $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";
                $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
                   $headers .= "MIME-Version: 1.0\r\n";
                   //email bestaat uit meerdere  bestanden dus vertel wat de scheidings teken is en dat het een multipart is
                   $headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n";
                   //we zenden een attachment mee
                   $headers .= "Content-Disposition:  attachment\r\n";
                   //readfile
                   $fp = fopen($_FILES['file']['tmp_name'],'r');
                   $bestand = fread($fp,$_FILES['file']['size']);
                   fclose($fp);
                   //create body
                   //generenen een body. Dit is een multi part gezeik

                   $body.= "This is a multi-part message in MIME format.\r\n";
                   $body.= "\r\n";
                //boundary
                $body.= "--".bound."\r\n";
                //content type + charater set (iso in dit geval)
                $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
                //codering (7 bit)
                $body.= "Content-Transfer-Encoding: 7bit\r\n";
                $body.= "\r\n";
                //het bericht
               $bericht .= "Fotograaf: " . $_POST['from'] . "\n";
               $bericht .= "Email: " . $_POST['email'] . "\n";
               $bericht .= "Betreft de soort: " . $_POST['soort'] . "\n";
               $bericht .= "Vindplaats: " . $_POST['vindplaats'];
               $bericht .= $_POST['provincie'] . "\n";
               $bericht .= $_POST['dag'];
               $bericht .= $_POST['maand'];
               $bericht .= $_POST['jaar'] . "\n";
               $bericht .= "Determinatie: " . $_POST['det'] . "\n";
               $bericht .= "Toegevoegde informatie: " . $_POST['bericht'];
                //boundary
                $body.= "--".bound."\r\n";
                //content type + naam bestand (database.sql)
                $body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";
                //codering
                $body .= "Content-Transfer-Encoding: base64\r\n";
                //als bijlage toegevoegd
                $body.= "Content-disposition: attachment\r\n";
                $body .= "\n";
                //de inhoud van het bestand
                $body .= chunk_split(base64_encode($bestand )) . "\r\n";
mail($email,$body,$headers);
                echo 'Email (Met een bijlage) is verzonden';
            }

            else
            {
                 echo 'Bestands grootte is te groot';
             }
        }

        else
        {
            $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";
               $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
               $headers .= "MIME-Version: 1.0\r\n";
               $bericht .= "Fotograaf: " . $_POST['from'] . "\n";
               $bericht .= "Email: " . $_POST['email'] . "\n";
               $bericht .= "Betreft de soort: " . $_POST['soort'] . "\n";
               $bericht .= "Vindplaats: " . $_POST['vindplaats'];
               $bericht .= $_POST['provincie'] . "\n";
               $bericht .= $_POST['dag'];
               $bericht .= $_POST['maand'];
               $bericht .= $_POST['jaar'] . "\n";
               $bericht .= "Determinatie: " . $_POST['det'] . "\n";
               $bericht .= "Toegevoegde informatie: " . $_POST['bericht'];
               mail($email,$_POST['vindplaats'],$bericht,$headers);
               echo 'Email (Zonder een bijlage) is verzonden';
         }
     }

     else
     {
        //mail formulier je moet zelf het fomullier maken
      
       echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"POST\" enctype=\"multipart/form-data\">
<table class= 'text_small'>
           <tr><tr>"
;
           echo "
             <td width='100%'><b>Soortfoto uploaden:</b> </td>
             <td><input type='file' name='file'><br>
</td>
           <tr>"
;            
            echo "<tr><td>Soortnaam: </td>
             <td><input type='text' name='soort' style=\"border: 1px solid #BBBB99\" size='20'><br>
</td>
           </tr>"
;
           echo "<td>Fotograaf: </td>
             <td><input type='text' name='from' style=\"border: 1px solid #BBBB99\" size='20'><br>
</td>
           </tr>"
;
           echo "<td>Email: </td>
             <td><input type='text' name='email' style=\"border: 1px solid #BBBB99\" size='20'><br>
</td>                        
           </tr>"
;
           echo "<td>Naam determinator*: </td>
             <td><input type='text' name='det' style=\"border: 1px solid #BBBB99\" size='20'><br>
</td>

           </tr>"
;
           echo "<td>Notatie van de vindplaats: </td>
             <td><input type='text' name='vindplaats' style=\"border: 1px solid #BBBB99\" size='20'>
             <select name='provincie'>
             <option selected>provincie...</option>
             <option>Fr.</option>
             <option>Gr.</option>
             <option>Dr.</option>
             <option>Ov.</option>
             <option>NH</option>
             <option>ZH</option>
             <option>Fl.</option>
             <option>Gld.</option>
             <option>Utr.</option>
             <option>NB</option>
             <option>Ze.</option>
             <option>Li.</option>
             </select><br>
</td>
           </tr>"
;
           echo "<td>Datum: </td>
             <td><select name='dag'>
             <option selected>DAG</option>
             <option>1</option>
             <option>2</option>
             <option>3</option>
             <option>4</option>
             <option>5</option>
             <option>6</option>
             <option>7</option>
             <option>8</option>
             <option>9</option>
             <option>10</option>
             <option>11</option>
             <option>12</option>
             <option>13</option>
             <option>14</option>
             <option>15</option>
             <option>16</option>
             <option>17</option>
             <option>18</option>
             <option>19</option>
             <option>20</option>
             <option>21</option>
             <option>22</option>
             <option>23</option>
             <option>24</option>
             <option>25</option>
             <option>26</option>
             <option>27</option>
             <option>28</option>
             <option>29</option>
             <option>30</option>
             <option>31</option>
             </select><select name='maand' style='text-transform: uppercase'>
             <option selected z>MND</option>
             <option>i</option>
             <option>ii</option>
             <option>iii</option>
             <option>iv</option>
             <option>v</option>
             <option>vi</option>
             <option>vii</option>
             <option>viii</option>
             <option>ix</option>
             <option>x</option>
             <option>xi</option>
             <option>xii</option>
             </select><input type='text' name='jaar' style='text-align:center' size='9'><br>
</td>
           </tr>"
;
           echo "<tr>
             <td>Toegevoegde informatie:<br><br><i>Hier kunt u de wijze van determinatie noemen, vermelden of het exemplaar is opgekweekt, op welke plant deze is gevonden etc.</i></td>
             <td><textarea rows='6' name='bericht' cols='35' style=\"font-family: Arial; font-size:10pt; border: 1px solid #BBBB99\" rows='1' cols='20'></textarea><br/>
</td>           </tr>
         </table>"
;
        echo "<input type=\"submit\" value=\"Toezenden >\" size='60'></form>";
    }

?>
Tymo M
Tymo M
18 jaar geleden
 
0 +1 -0 -1
Ik ben er al uit, excuses!
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ghost rider
Ghost rider
17 jaar geleden
 
0 +1 -0 -1
Het script werkt goed, bedankt. Maar hoe kan ik er een paar regels aan toevoegen, en het onderwerp er uit halen en vervangen door een standaard onderwerp?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. email-formulier-met-bijlage

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.