Toon posts:

[java / SMTP] mail komt maar niet goed aan

Pagina: 1
Acties:
  • 112 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik ziet met het het probleem dat mijn mail niet goed aankomt
inn outlook die ik gemaakt heb op een embedded systeem waar
JDK 1.1.8 op draait met een speciale mail functie.

De mail functie is de volgende:
smtp.sendMessage(String from, String to,String subject,String header, String message);

Ik moet dus naar mijn weten in de header specificeren dat er een attachment in zit.
En deze vervolgens in de message body plaatsen ?

De binnenkomende mail ziet er nu als volgt uit:
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
From: lj4345mfp@bogus.nl
Subject: Incoming attachment
To: me@bogus.nl
Mime-Version 1.0
Content-Type: multipart/mixed; boundary="boundaryLine"
Status: 0
--boundaryLine
Content-Type: multipart/mixed; boundary="boundaryLine_inner"
--boundaryLine_inner
Content-Type: APPLICATION/octet-stream; name=logo.tif
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=logo.tif

SUkqAAgAAAAPAP4ABAABAAAAAAPgAAAAAA
AAAAAAAHgAAAAAAAAAA+AAAAAAAAAAAAAAeA

<save some space here>

WVudCBEYXRhIEJsb2NrAAAAAAA=
--boundaryLine_inner--

--boundaryLine
Content-Type: TEXT/PLAIN; charset=iso-8859-1
 This is a incoming attachment

--boundaryLine--


Is er ergens een voorbeeld te vinden, waar een attachment in een mail
gestopt wordt? Niet hoe, maar hoe zo'n SMTP/ multipart bericht er
dan wel uit moet zien :)

Bij voorbaat dank

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
ik weet niet wat voor mogelijkheden jij hebt met die mail functie. Maar JavaMail bijvoorbeeld werkt met mime messages. Als je de body van een mail bericht hebt, kun je hier weer een niet "part" aan toevoegen welke een attachement bevat. Aan de header van dit part kun je dan zien of het gaat om een attachement.

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

God, root, what is difference? | Talga Vassternich | IBM zuigt


Verwijderd

Topicstarter
CK schreef op maandag 27 december 2004 @ 13:32:
ik weet niet wat voor mogelijkheden jij hebt met die mail functie. Maar JavaMail bijvoorbeeld werkt met mime messages. Als je de body van een mail bericht hebt, kun je hier weer een niet "part" aan toevoegen welke een attachement bevat. Aan de header van dit part kun je dan zien of het gaat om een attachement.
Dus hiermee bedoel je dat ik gewoon in de body een extra part kan toevoegen ?
Maar dan moet ik dit ook in de header specificeren dat er in de body een extra part staat toch ?

Verwijderd

Verwijderd schreef op maandag 27 december 2004 @ 13:38:
[...]


Dus hiermee bedoel je dat ik gewoon in de body een extra part kan toevoegen ?
Maar dan moet ik dit ook in de header specificeren dat er in de body een extra part staat toch ?
http://java.sun.com/produ...javax/mail/Multipart.html

en Message implements Part dus kun je een message als parent van een multipart opgeven... er is een goed artikel voer javamail hier:
http://java.sun.com/devel....html#JavaMailAttachments

Verwijderd

Topicstarter
Ok ik heb het na lang uitzoeken zelf maar een SMTP client geschreven die wel werkt O-)

Nu kan ik dus netjes een mail sturen met attachment en de header schrijf ik gewoon helemaal zelf. Heerlijk om dat in eigen hand te houden :)

Maar nu heb ik dus het andere probleem dat de mailtjes wel netjes aankomen
en ik zie hier in outlook2003 dat er netjes attachments zijn.
Echter met bijv outlook2000 wordt de attachment in de bodytext geplaatst.
Hoe kan dit dan? Heb ik iets fout gedaan? Mailprotocol is toch overal hetzelfde
dus als het werkt met de ene e-mail client dan moet dit toch ook werken met
een andere client (mits multipart ondersteund wordt)

hieronder mijn code om de header te schrijven voor 2 attachments:
Java:
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
private String attachmentHeader(byte[] new_scan, byte[] origanal_scan, String fileNAME, String orignal_name)
   {
      StringBuffer sb = new StringBuffer();
      //sb.append(sBodyText + "\r\n");    
      sb.append("Mime-Version 1.0\r\n");
      sb.append("Content-Type: multipart/alternative; boundary=\"" + boundary + "\"");
      sb.append("\r\n\r\n--" + boundary + "\r\n");
      sb.append("Content-Type: text/plain; charset=us-ascii\r\n");
      sb.append("Content-Transfer-Encoding: 7bit\r\n\r\n");
      sb.append(parseBodyText(sBodyText));
      sb.append("\r\n\r\n--" + boundary + "\r\n");
      sb.append("Content-Type: APPLICATION/octet-stream; name=\"" + fileNAME + "\"\r\n");
      sb.append("Content-Transfer-Encoding: base64\r\n");
      sb.append("Content-Disposition: attachment; filename=\"" + fileNAME + "\"\r\n\r\n");
      //base64 encoding          
      sb.append(createFileAttachment(new_scan));
      //Log.logEvent("ScanfileHandler", "attachmentHeader", "NewScan attached lengte " + new_scan.length);
      //sb.append("\r\n\r\n--" + boundary + "\r\n");          
      sb.append("\r\n\r\n--" + boundary + "\r\n");
      sb.append("Content-Type: APPLICATION/octet-stream; name=\"" + orignal_name + "\"\r\n");
      sb.append("Content-Transfer-Encoding: base64\r\n");
      sb.append("Content-Disposition: attachment; filename=\"" + orignal_name + "\"\r\n\r\n");
      //base64 encoding        
      sb.append(createFileAttachment(origanal_scan));
      //Log.logEvent("ScanfileHandler", "attachmentHeader", "sOrigScan attached lengte" + origanal_scan.length);
      //bodytext      
      sb.append("\r\n\r\n--" + boundary + "--\r\n");
      //sb.append(parseBodyText() + "\r\n");      
      return sb.toString();
   }

Ja je kan je afvragen waarom hardcoded 2 attachments maar zo zou het eigenlijk al moeten werken, later bouw ik er wel een vector e.d. in om meerdere attachments te ondersteunen.

Alvast bedankt voor eventuele hulp!
:)
Pagina: 1