Sorry, tam źle wkleiłem (bez ";") i pokazywało coś innego. Teraz poprawione i jest tak (bez body).
Array ( [plik1] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [plik2] => Array ( [name] => oferta - Kopia.pdf [type] => application/pdf [tmp_name] => /tmp/phpxEEWrE [error] => 0 [size] => 70501 ) [plik3] => Array ( [name] => middle2.gif [type] => image/gif [tmp_name] => /tmp/phpxr0KWJ [error] => 0 [size] => 382 ) )
Dziękujemy za przesłanie dokumentów aplikacyjnych. Skontaktujemy się z Tobą gdy pojawią się oferty pracy.
Aby cofnąć się do poprzedniej strony proszę kliknąć przycisk Wstecz.
I dodam jeszcze, że mail dochodzi tylko z jednym załącznikiem. Brak <body> nie ma tu znaczenia.
Na obu tematach są dwa rózne kody. Obecnie próbuję na tym - myślałem że to jest jasne:
<?php
//sprawdzenie czy załącznik pochodzi z formularza
if ($_POST["wyslij"]==1)
// dane o odbiorcy, nadawcy
$odbiorca="biuro@somont.xaa.pl";
$tytul="Dokumenty aplikacyjne";
$nadawca = "Dokumenty aplikacyjne";
$nadawca_mail="mail-ze-strony@domena.pl";
// treść listu
$tresclistu = "tutaj piszesz całą treść maila";
// definicja nagłówków
$naglowki = "From: $nadawca <$nadawca_mail>\n";
$naglowki .= "MIME-Version: 1.0\n";
$naglowki .= "Content-Type: multipart/mixed;\n";
$naglowki .= "\tboundary=\"___$znacznik==\"";
// nagłówki listu
$tresc="--___$znacznik==\n";
$tresc .="Content-Type: text/plain; charset=\"utf-8\"\n";
$tresc .="Content-Transfer-Encoding: 8bit\n";
$tresc .="\n$tresclistu\n";
// nagłówki i obsługa załącznika
$plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
$plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
$plik_wielkosc = $_FILES["plik1"]["size"];
{
$tresc .="--___$znacznik==\n";
$tresc .="Content-Type: /pdf/doc/docx\n";
$tresc .="Content-Disposition: attachment;\n";
$tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
$tresc .="Content-Transfer-Encoding: base64\n\n";
$f = fopen($plik_nazwa_tmp,"rb"); $tresc .="--___$znacznik==--\n";
}
// nagłówki i obsługa załącznika 2
$plik_nazwa_tmp = $_FILES["plik2"]["tmp_name"];
$plik_nazwa_oryginalna = $_FILES["plik2"]["name"];
$plik_wielkosc = $_FILES["plik2"]["size"];
{
$tresc .="--___$znacznik==\n";
$tresc .="Content-Type: /pdf/doc/docx\n";
$tresc .="Content-Disposition: attachment;\n";
$tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
$tresc .="Content-Transfer-Encoding: base64\n\n";
$f = fopen($plik_nazwa_tmp,"rb"); $tresc .="--___$znacznik==--\n";
}
// nagłówki i obsługa załącznika 3
$plik_nazwa_tmp = $_FILES["plik3"]["tmp_name"];
$plik_nazwa_oryginalna = $_FILES["plik3"]["name"];
$plik_wielkosc = $_FILES["plik3"]["size"];
{
$tresc .="--___$znacznik==\n";
$tresc .="Content-Type: /jpg/jpeg/gif/png\n";
$tresc .="Content-Disposition: attachment;\n";
$tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
$tresc .="Content-Transfer-Encoding: base64\n\n";
$f = fopen($plik_nazwa_tmp,"rb"); $tresc .="--___$znacznik==--\n";
}
// wysłanie listu
if (mail($odbiorca,$tytul,$tresc,$naglowki)) {
}
else
{
print "E-mail NIE został wysłany poprawnie. <br>Prosimy o <a href=\"java script:history.back();\">powrót</a> i wysłanie załączników ponownie.";
}
}
?>
A to html
<FORM METHOD="post" ACTION="praca.php" ENCTYPE="multipart/form-data"> <input type="hidden" name="wyslij" value="1" /> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> Załącz CV (doc, docx, pdf):
<br/><INPUT type="file" name="plik1"/><br/><br/>Załącz list motywacyjny (doc, docx, pdf):
<br/><INPUT type="file" name="plik2" /><br/><br/>Załącz zdjęcie (jpg, gif, png):
<br/><INPUT type="file" name="plik3";><br/><br/><INPUT TYPE="SUBMIT" VALUE="Wyślij załączniki"> <input type="reset" value="Wyczyść"/>
Co mam pokazać - który kod ? Przecież wkleiłem go teraz, a tak naprawdę nie różni się niczym od tego opublikowanego o godz. 20:02 (post 7).
Tak jak patrzę na ten kod, nie znam się na tym co prawda o czym już informowałem, ale wydaje mi się że brakuje tam jakiegoś operatora. Jest takie coś: if (is_uploaded_file($plik1)), później to powtarza się jeszcze 2 razy. Wg mnie gdzieś między tym wszystkim powinno być coś takiego jak "i" albo "lub". SKrypt widzi jeśli jest załadowana plik, to coś wyślij. I dlatego wysyła pierwszy plik na który napotka. A gdyby było jeszcze to "i" albo "lub" to brałby pod uwagę wszystkie pliki i wszystkie byłyby dostarczane do adresata.
To takie moje odczucia.