[Perl] MIME multipart/alternative + PDF attachment

Pagina: 1
Acties:

  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
Hallo allen,

Ik heb een Perl script, die gebruik maakt van standaard MIME modules (zie ook CPAN). Dit script is nu in staat om een multipart/alternative mailtje te genereren met een HTML en een plain text gedeelte. Dit werkt dus allemaal goed.

Nu wil ik aan dit mailtje een PDF-je hangen. Nu weet ik echter niet hoe ik dit precies moet doen, zonder het multipart/alternative effect te vernielen. Ik heb het volgende geprobeerd:

code:
1
2
3
4
MAIL (multipart/alternative)
 - deel 1, text/plain, content disposition inline
 - deel 2, text/html, content disposition inline
 - deel 3, application/pdf, content disposition attachment

bovenstaande opmaak zorgt er voor dat het multipart het lijkt te doen, maar ik krijg geen attachment- icoontje. Ik heb gekeken naar het ruwe MIME-bericht, maar daar staat het PDF-je WEL in

code:
1
2
3
4
MAIL (multipart/mixed)
 - deel 1, text/plain, content disposition inline
 - deel 2, text/html, content disposition inline
 - deel 3, application/pdf, content disposition attachment

bovenstaande opmaak zorgt er voor dat ik de plain text voor mijn snufferd krijg, en het HTML en het PDFje als attachment krijg.

Ik heb op CPAN gekeken, maar over deze specifieke combinatie van multipart EN attachment kan ik niet een duidelijk voorbeeld vinden. Ook in GoT heb ik gezocht, en niet gevonden.

Ik weet haast 100% zeker dat het geen syntax fout is binnen perl, maar een fout in de manier waarop ik MIME gebruik.

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 01-05 13:23
Geen oplossing, maar misschien een idee om zo'n email met je emailclient te maken, aan jezelf te sturen en dan de bron bekijken. En dan is het een kwestie van namaken.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 26-05 01:17
Je kan toch een multipart/mixed maken die bestaat uit een application/pdf en een multipart/alternative (en deze bestaat weer uit een text/html en text/plain).
Mime werkt recursief en ik neem aan dat een beetje algemene perl-module dat wel aan moet kunnen.

Een redelijke manier om dit soort dingen uit te zoeken is om met een normale mailclient een html mail te maken met een pdf attachment. Hierin kun je dan bekijken hoe de mime structuur in elkaar zit. Het idee achter multipart/alternative is dat elk deel dezelfde content bevat, maar met een andere layout. Aangezien je mailclient weet hoe het text/html moet weergeven, zal het de rest negeren.

  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
Okee... het werkt (onder Outlook tenminste)
Ik krijg nu ong. De volgende code:

code:
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
Content-Type: multipart/mixed; boundary="----------=_1077291262-30760-0"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.411 (Entity 5.404)
To: bbeumer@********.nl
Subject: *********
X-Header: order:108469::Powered by *********

This is a multi-part message in MIME format...

------------=_1077291262-30760-0
Content-Type: multipart/alternative; boundary="----------=_1077291262-30760-1"
Content-Transfer-Encoding: binary

This is a multi-part message in MIME format...

------------=_1077291262-30760-1
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: binary

Geachte heer Beumer,

Bedankt voor uw bestelling.

.....


Veel plezier met uw aankoop.



------------=_1077291262-30760-1
Content-Type: text/html
Content-Disposition: inline
Content-Transfer-Encoding: binary

 <HTML><HEAD>
<style type="text/css">
 
......


------------=_1077291262-30760-1--

------------=_1077291262-30760-0
Content-Type: application/pdf; name="****Factuur.pdf"
Content-Disposition: attachment; filename="****Factuur.pdf"
Content-Transfer-Encoding: base64

JVBERi0xLjQKJcfsj6IKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovVmll
d2VyUHJlZmVyZW5jZXMgPDwKL05vbkZ1bGxTY3JlZW5QYWdlTW9kZSAvVXNl
Tm9uZQo+PgovUGFnZUxheW91dCAvU2luZ2xlUGFnZQovUGFnZXMgMiAwIFIK
L1BhZ2VNb2RlIC9Vc2VOb25lCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBl
IC9QYWdlcwovS2lkcyBbIDcgMCBSIF0KL1Jlc291cmNlcyAzIDAgUgovQ291
bnQgMQo+PgplbmRvYmoKMyAwIG9iago8PAovWE9iamVjdCA8PAovSU1HeEpQ

......


MDAwMzMwNTEgMDAwMDAgbiAKMDAwMDAzMzA3MSAwMDAwMCBuIAp0cmFpbGVy
Cjw8Ci9Sb290IDEgMCBSCi9TaXplIDE0Ci9JbmZvIDQgMCBSCj4+CnN0YXJ0
eHJlZgozMzA5MwolJUVPRgo=

------------=_1077291262-30760-0--


Het enige wat ik nu nog moet doen, is controleren of dit ook werkt onder verschillende browsers.

Bedankt voor de ingeving :)

[ Voor 7% gewijzigd door Bart B op 20-02-2004 16:41 ]