/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mail() med vedhæftet pdf-fil
Fra : J. Nielsen


Dato : 20-01-04 23:08

Hej!

Jeg vil gerne sende en mail vha. mail()-funktionen.

I den pågældende mail, skal der vedhæftes en pdf-fil. Jeg har forsøgt mig
med nogle eksempler, jeg har fundet på php.net, men de virker ikke. Jeg får
godt nok vedhæftet en fil, men Acrobat Reader påstår, at den er korrupt

Her er koden, jeg har forsøgt mig med:

=== K O D E = = S T A R T ===

function xmail($email_address,$email_from,$subject,$msg,$attach_filepath) {
$b = 0;
$mail_attached = "";
$boundary = md5(uniqid(time(),1))."_xmail";
if (count($attach_filepath)>0) {
for ($a=0;$a<count($attach_filepath);$a++) {
if ($fp = fopen($attach_filepath[$a],"rb")) {
$file_name = basename($attach_filepath[$a]);
$content[$b] = fread($fp,filesize($attach_filepath[$a]));
$mail_attached .= "--".$boundary."\r\n"
."Content-Type: image/jpeg; name=\"$file_name\"\r\n"
. "Content-Transfer-Encoding: base64\r\n"
. "Content-Disposition: inline;
filename=\"$file_name\"\r\n\r\n"
.chunk_split(base64_encode($content[$b]))."\r\n";
$b++;
fclose($fp);
} else {
echo "NEIN";
}
}
$mail_attached .= "--".$boundary." \r\n";
$add_header ="MIME-Version: 1.0\r\nContent-Type: multipart/mixed;
boundary=\"$boundary\"";
$mail_content = "--".$boundary."\r\n"
. "Content-Type: text/plain; charset=iso-8859-1;
format=flowed\r\n"
. "Content-Transfer-Encoding: 8bit\r\n\r\n"
. $msg."\r\n\r\n".$mail_attached;
return mail($email_address,$subject,$mail_content,"From:
".$email_from."\r\n".$add_header);
} else {
return mail($email_address,$subject,$msg,"From: ".$email_from);
}
}

$message = "Moin!\n";
$attach_filepath[0] = "../download/fil.pdf";
xmail("mail@jbro.dk",nyrup@a.dk,"Xmail",$message,$attach_filepath);

=== K O D E = = S L U T ===

Er der nogen, der kan se en fejl?
Er der nogen, der har fået d.o. eller noget lignende til at virke, så er jeg
meget interesseret i noget input.

Med venlig hilsen

Jakob B. N.
Aalborg



 
 
Kristian Thy (20-01-2004)
Kommentar
Fra : Kristian Thy


Dato : 20-01-04 23:10

J. Nielsen uttered:
> I den pågældende mail, skal der vedhæftes en pdf-fil. Jeg har
> forsøgt mig med nogle eksempler, jeg har fundet på php.net, men de
> virker ikke. Jeg får godt nok vedhæftet en fil, men Acrobat Reader
> påstår, at den er korrupt

Og du har selvfølgelig testet filen - fx ved at gemme den på serveren
og downloade den - så du er sikker på at det er mail()-funktionen den
er gal med?

\\kristian
--
Dyslexics of the world, untie!

J. Nielsen (22-01-2004)
Kommentar
Fra : J. Nielsen


Dato : 22-01-04 21:37

> Og du har selvfølgelig testet filen - fx ved at gemme den på serveren
> og downloade den - så du er sikker på at det er mail()-funktionen den
> er gal med?

Naturligvis,



Peter Brodersen (20-01-2004)
Kommentar
Fra : Peter Brodersen


Dato : 20-01-04 23:19

On Tue, 20 Jan 2004 23:07:52 +0100, "J. Nielsen" <mail@jbro.NOSPAMdk>
wrote:

> ."Content-Type: image/jpeg; name=\"$file_name\"\r\n"

Prøv at rette image/jpeg til application/pdf

>Er der nogen, der har fået d.o. eller noget lignende til at virke, så er jeg
>meget interesseret i noget input.

Der findes vist PEAR-klasser til formålet. Jeg har også i al
beskedenhed lavet en klasse til at attache filer:
http://wholemail.ter.dk/

--
- Peter Brodersen

Ugens sprogtip: i gang (og ikke igang)

J. Nielsen (22-01-2004)
Kommentar
Fra : J. Nielsen


Dato : 22-01-04 21:47

Hej Peter!

Tak for dit svar.

> Prøv at rette image/jpeg til application/pdf

Det har jeg prøvet, og det gav desværre ikke den ønskede efftekt.

> Der findes vist PEAR-klasser til formålet. Jeg har også i al
> beskedenhed lavet en klasse til at attache filer:
> http://wholemail.ter.dk/

Jeg har forsøgt mig med den klasse, som du har skrevet. Jeg har fået det til
at køre, så jeg kan afsende emails, men det lykkes heller ikke her med min
pdf-fil.

Filen på serveren (som pt. er min stationære PC) fylder 6983 bytes, men når
jeg modtager den som attachment og gemmer den på disken, så er den nede på
6975 bytes.

Der er altså forsvundet 8 bytes, og nu siger Acrobat Reader, at filen er
korrupt (!).

Hvad går der galt?

Med venlig hilsen

Jakob Bro Nielsen
Aalborg



Jonas Delfs (21-01-2004)
Kommentar
Fra : Jonas Delfs


Dato : 21-01-04 00:12

"J. Nielsen" <mail@jbro.NOSPAMdk> skrev i en meddelelse
news:400da6b9$0$22623$ba624c82@nntp01.dk.telia.net...
> Hej!
>
> Jeg vil gerne sende en mail vha. mail()-funktionen.
>
> I den pågældende mail, skal der vedhæftes en pdf-fil. Jeg har forsøgt mig
> med nogle eksempler, jeg har fundet på php.net, men de virker ikke. Jeg
får
> godt nok vedhæftet en fil, men Acrobat Reader påstår, at den er korrupt


Jeg har et skrabet, men overskueligt eksempel liggende på
http://delfs.dk/tricks.attachments.php. Jeg må indrømme at jeg ikke kan
huske at have testet det med en pdf-fil - men jeg kan ikke se hvorfor det
ikke skulle virke ganske glimragende så du kunne give den en chance:)

--
Mvh. Jonas Delfs
Freelance webprogrammør: http://delfs.dk



Martin Møller Bæk (21-01-2004)
Kommentar
Fra : Martin Møller Bæk


Dato : 21-01-04 00:37

J. Nielsen wrote:

> Hej!
>
> Jeg vil gerne sende en mail vha. mail()-funktionen.
>
> I den pågældende mail, skal der vedhæftes en pdf-fil. Jeg har forsøgt mig
> med nogle eksempler, jeg har fundet på php.net, men de virker ikke. Jeg får
> godt nok vedhæftet en fil, men Acrobat Reader påstår, at den er korrupt

Det kan også skyldes, at den sti til filen, du angiver er forkert.
Prøv evt. at teste dette med getcwd() (get current working dir)
sammenholdt med din angivne sti.

--
Mvh.
Martin Møller Bæk
www.yavi.dk


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste