Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zalaczniki w mailach
Forum PHP.pl > Forum > PHP
maggot
Jak zrobic zeby wyslac maila z zalacznikiem z dysku lokanego internauty (np podaje on plik c:bleee.ble - i jest on wysylany do mnie przez maila jako zalacznik) ?
dvc
już na ten temat była mowa na forum
za pomocą funkcji mail()
tworzysz najpierw formularz:
index.php3:

Kod
<FORM ACTION="send.php3" METHOD="POST" ENCTYPE="multipart/form-data">

// ten input poniżej służy do tego aby ograniczyć wielkość przesyłki

<input type="hidden" name="MAX_FILE_SIZE" value="4096">

<input type="text" name="from" VALUE="MAGGOT">

<input type="text" name="temat">

<input type="file" name="attach">

<textarea cols=55 rows=10 name="tresc" wrap="message"></textarea>

<input type="submit" value="Wyślij" name="mail">

<input type="reset" value="Wyczyść">

</FORM>


send.php3:

Kod
<?php

$mailheaders = "From: $fromn";

$mailheaders .= "Reply-To: $fromn";

$mailheaders .= "Cc: $ccn";

$mailheaders .= "X-Mailer: Server Web Email Interfacen";

$msg_body = stripslashes($body);

if ($attach != "none")

{

$file = fopen($attach, "r");

$contents = fread($file, $attach_size);

$encoded_attach = chunk_split(base64_encode($contents));

fclose($file);

$mailheaders .= "MIME-version: 1.0n";

$mailheaders .= "Content-type: multipart/mixed; ";

$mailheaders .= "boundary="Message-Boundary"n";

$mailheaders .= "Content-transfer-encoding: 7BITn";

$mailheaders .= "X-attachments: $attach_name";

$body_top = "--Message-Boundaryn";

$body_top .= "Content-type: text/plain; charset=US-ASCIIn";

$body_top .= "Content-transfer-encoding: 7BITn";

$body_top .= "Content-description: Mail message bodynn";

$msg_body = $body_top . $msg_body;

$msg_body .= "nn--Message-Boundaryn";

$msg_body .= "Content-type: $attach_type; name="$attach_name"n";

$msg_body .= "Content-Transfer-Encoding: BASE64n";

$msg_body .= "Content-disposition: attachment; filename="$attach_name"nn";

$msg_body .= "$encoded_attachn";

$msg_body .= "--Message-Boundary--n";

}

mail($to, stripslashes($subject), $msg_body, $mailheaders);

pritn("Mail został wysłany");

?>


zapomiałem dopisać kilk arzeczy a mianowicie, że musisz sobie dokładnie presledzić zmenne, bo ja to powycinałem od siebie ze skryptów
i musiałem sporo usunąć, bo mam to wykorzystane na firmowe potrzeby
Kod
$tresc       = $text

$to          = $mail;

$subject     = $temat;

$body        = $tresc;

$mailheaders = $od;
maggot
ale np. takie cos
$fp = fopen ("c:datainfo.txt", "r");

mi nie dziala - nie znajduje pliku pomimo ze takowy istnieje
GeoS
Cytat
ale np. takie cos
...

mi nie dziala - nie znajduje pliku pomimo ze takowy istnieje


Bo php jest jezykiem Server-Side, a nie Client-Side. Ta drobna roznica powoduje, ze plik jest otwierany na serwerze, a nie u klienta sad.gif
maggot
ale przeciez cos takiego musi sie dac zrobic - bo np. jak skrypty do przegladania poczty przez www wysylaja listy z zalacznikami questionmark.gif?
dvc
no to kurde ja się rozpisuje kodem

tam wszystko jest :!:

w formularzu wystepuje cos takiego jak
<input type="file" ...>
to jest polem do pobierania pliku z komputera klienta
plik jet przesyłany wraz z danymi z formularza
do serwera i zapisywany jest w katalogu tmp
i jesli przeanalizujesz kod, która napisałem
zauważysz, że dopiero na serwerze nastepuje jego otwarcie
i wysłanie biggrin.gif

co jest jeszcze nie jasne :?:
GeoS
dvc - troche luzu :!: Nie kazdy jest tak doswiadczony jak Ty sad.gif
dvc
gajcy2: przepraszam masz racje uniosłem się
hmm, chciałbym być taki doświadczony biggrin.gif
ale dużo mi brakuje :x
jeszcze raz przepraszam :wink:
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.