webForumDet fria alternativet

Bifoga filer mer mail()

PHP

8 svar · 375 visningar · startad av filipbh

Medlem sedan juli 2002405 inlägg
Frågan#1

Hej... Är det möjligt att bifoga filer när man använder mailskriptet mail()?

Tack på förhand

Medlem sedan maj 2005562 inlägg
#2

Ja det är det

http://se.php.net/manual/en/ref.mail.php

Medlem sedan juli 2002405 inlägg
#3

Om du är bra på engelska får du gärna tyda det där lite så jag vet vilken kodsnutt som ska användas m.m.... Tack iaf hittills

Medlem sedan apr. 2002830 inlägg
#4

php.net skrev:

How to add multiple attachment to an email:

An email can be split into many parts separated by a boundary followed by a Content-Type and a Content-Disposition.

The boundary is initialized as follows:
<?php
$boundary = '-----=' . md5( uniqid ( rand() ) );
?>

You can attach a Word document if you specify:
<?php
$message .= "Content-Type: application/msword; name=\"my attachment\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: attachment; filename=\"$theFile\"\n\n";
?>

When adding a file you must open it and read it with fopen and add the content to the message:
<?php
$path = "whatever the path to the file is";
$fp = fopen($path, 'r');
do //we loop until there is no data left
{
       $data = fread($fp, 8192);
       if (strlen($data) == 0) break;
       $content .= $data;
     } while (true);
$content_encode = chunk_split(base64_encode($content));
$message .= $content_encode . "\n";
$message .= "--" . $boundary . "\n";
?>

Add the needed headers and send!
<?php
$headers  = "From: \"Me\"<me@here.com>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
mail('myAddress@hotmail.com', 'Email with attachment from PHP', $message, $headers);
?>

Finally, if you add an image and want it displayed in your email, change the Content-Type from attachment to inline:

<?php
$message .= "Content-Disposition: inline; filename=\"$theFile\"\n\n";
?>

Enjoy!
Medlem sedan juli 2002405 inlägg
#5

Jag får inte med filen...

Måste man ändra "msword" i $message .= "Content-Type: application/msword; name=\"my attachment\"\n"; till nåt annat om det inte är en word-fil?

Medlem sedan juli 2002405 inlägg
#6

Om jag får med nån fil så står det untitled och 0 k... Det är framför allt pdf-filer som ska skickas. Men jag vill kunna använda skriptet till mer än det.

Medlem sedan juli 2002405 inlägg
#7

Ingen som vet vad jag ska göra och vad felet är?

Medlem sedan juni 20055 inlägg
#8

Jag hade oxå stora problem med att bifoga filer.

De jag frågade hävdade att min kod var korrekt och jag testade då istället att lägga upp koden på ett annat webhotell - och vips - det fungerade! Olika hotell har olika begränsningar - har du möjligheten så testa någon annanstans oxå.

Medlem sedan juli 2002405 inlägg
#9

Egentligen inte.. Men jag får väl fixa ett. Vilken inställning ska man ha för att det ska gå då? Vilket hade du som inte fungerade? B-one eller? De använder jag nu...

255 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)