+ Antworten
Ergebnis 1 bis 15 von 15

Thema: Email Message

  1. #1
    User Bit Themenstarter
    Avatar von Anko
    Registriert seit
    03.03.2014
    Fachbeiträge
    5
    Genannt
    0 Post(s)
    Hallo zusammen,

    ich habe mir ein Mail Job mit Grails & Groovy geschrieben.
    Es wird jede Minute automatisch abgefragt, ob neue Mails eingegangen sind.
    Falls neue Mails eingegangen sind werde die Mails in eine MySql Datenbank geschrieben.
    Funktioniert auch alles Wunderbar!

    Allerdings wird immer die ganze Mail (HTML Code etc.) mit in die Datenbank gespeichert.
    Ich möchte aber nur die Message gespeichert bekommen.


    Codeausschnitt:


    Java Code:
    1. try {
    2.            
    3.             Session session = Session.getInstance(props, auth)
    4.             IMAPSSLStore store = new IMAPSSLStore(session, new URLName("imap", Company.get(7).emailHost, Integer.parseInt(Company.get(7).emailPort), "", Company.get(7).emailUsername, pw));
    5.              
    6.             store.connect();
    7.             Folder inbox = store.getFolder("INBOX")
    8.             inbox.open(Folder.READ_WRITE)
    9.             Flags seen = new Flags(Flags.Flag.SEEN)
    10.             FlagTerm unseenFlagTerm = new FlagTerm(seen, false)
    11.             inbox.search(unseenFlagTerm).each { msg ->
    12.                 mailFrom = msg.getFrom()[0].toString();
    13.                 sbj = msg.getSubject().toString();
    14.                 sentdate = msg.getSentDate().toString();
    15.                 def task = new Task()
    16.                 content = msg.getContent();




    Java Code:
    1. content = msg.getContent();

    Im Content steht die ganze Mail als HTML Code.

    Hat jemand eine Lösungsansatz für mich wie ich ausschließlich nur die Message rausbekomme?


    Vielen Dank

  2. #2
    User Kilobyte Avatar von Marcinek
    Registriert seit
    03.05.2013
    Ort
    Waltrop
    Fachbeiträge
    153
    Genannt
    9 Post(s)
    Blog-Einträge
    1
    Hallo,

    der Content ist nunmal HTML.

    Du musst das HTML entsprechend visualisieren. Oder eben den tatsächlichen Conent daraus parsen. Ich befürchte aber, dass dies schwierig ist, da Du ja nicht unterscheiden kannst zwischen Nutzinformationen und irgenteinem Text, der drunter und drüber steht. (Disclaimer oder "Falls Sie diese Mail...");

    Gruß,

    Martin

  3. #3
    User Megabyte Avatar von Timothy_Truckle
    Registriert seit
    01.08.2013
    Ort
    Wasserkuppe
    Fachbeiträge
    1.330
    Genannt
    86 Post(s)
    Blog-Einträge
    5
    wo holst Du denn die Mail ab? wäre POP3 als Protokoll nicht besser geeignet?

    bye
    TT

  4. #4
    User Kilobyte Avatar von Marcinek
    Registriert seit
    03.05.2013
    Ort
    Waltrop
    Fachbeiträge
    153
    Genannt
    9 Post(s)
    Blog-Einträge
    1
    Das Protokoll ist doch wohl irrelevant. Pop3 macht aus html auch nicht einen Text.

  5. #5
    User Megabyte Avatar von Timothy_Truckle
    Registriert seit
    01.08.2013
    Ort
    Wasserkuppe
    Fachbeiträge
    1.330
    Genannt
    86 Post(s)
    Blog-Einträge
    5
    Zitat Zitat von Marcinek Beitrag anzeigen
    Das Protokoll ist doch wohl irrelevant. Pop3 macht aus html auch nicht einen Text.
    Wenn die Mail selbst sowiso HTML ist nicht, aber Webfrontends machen aus reiner Text-Mail eben auch HTML-Geschlunze...

    bye
    TT

  6. #6
    User Kilobyte Avatar von Marcinek
    Registriert seit
    03.05.2013
    Ort
    Waltrop
    Fachbeiträge
    153
    Genannt
    9 Post(s)
    Blog-Einträge
    1
    Ja, aber hier macht doch keiner was mit web-frontend. Jedenfalls sehe ich im Quelltext, dass hier eindeutig imap benutzt wird.

    Also das Protokoll über das die E-Mail übertragen wird ist egal. Wäre auch schlimm, wenn es nicht so wäre ;D

  7. #7
    Frequent User Viertel Megabyte Avatar von TheDarkRose
    Registriert seit
    07.08.2013
    Ort
    Hallein
    Fachbeiträge
    484
    Genannt
    64 Post(s)
    Kommt immer auf die Mail darauf an. Newsletter und so Zeugs bekommst meist nur als HTML, wie das bei automatisch erzeugten Rechnungen aussieht, keine Ahnung. Bei manuell verschickten Email erzeugt der Client meistens eine Multipart Email, ergo. einen HTML und einen Reintext-Content.
    Kulturverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  8. #8
    User Bit Themenstarter
    Avatar von Anko
    Registriert seit
    03.03.2014
    Fachbeiträge
    5
    Genannt
    0 Post(s)
    Ich habe es schonmal mit einem "googlemail" Konto realisiert bekommen.

    Java Code:
    1. Multipart multipart =  msg.getContent();
    2.     content = multipart.getBodyPart(0).getContent().toString();

    Im content stand dann wirklich nur der Text der Mail drin.
    Nun läuft das ganze mit Outlook365. Und damit funktioniert es nicht mehr.

  9. #9
    Frequent User Viertel Megabyte Avatar von TheDarkRose
    Registriert seit
    07.08.2013
    Ort
    Hallein
    Fachbeiträge
    484
    Genannt
    64 Post(s)
    Zitat Zitat von Anko Beitrag anzeigen
    Im content stand dann wirklich nur der Text der Mail drin.
    Weil du Glück hattest und der Part 0 der Message der Textteil war. Lass dir doch mal alle Parts ausgeben.
    Kulturverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  10. #10
    User Bit Themenstarter
    Avatar von Anko
    Registriert seit
    03.03.2014
    Fachbeiträge
    5
    Genannt
    0 Post(s)
    Java Code:
    1. org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object with class 'java.lang.String' to class 'javax.mail.Multipart' <html>
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    4. <meta name="Generator" content="Microsoft Word 12 (filtered medium)">
    5. <style><!--
    6. /* Font Definitions */
    7. @font-face
    8.     {font-family:"Cambria Math";
    9.     panose-1:2 4 5 3 5 4 6 3 2 4;}
    10. @font-face
    11.     {font-family:Calibri;
    12.     panose-1:2 15 5 2 2 2 4 3 2 4;}
    13. @font-face
    14.     {font-family:Tahoma;
    15.     panose-1:2 11 6 4 3 5 4 4 2 4;}
    16. /* Style Definitions */
    17. p.MsoNormal, li.MsoNormal, div.MsoNormal
    18.     {margin:0cm;
    19.     margin-bottom:.0001pt;
    20.     font-size:11.0pt;
    21.     font-family:"Calibri","sans-serif";}
    22. a:link, span.MsoHyperlink
    23.     {mso-style-priority:99;
    24.     color:blue;
    25.     text-decoration:underline;}
    26. a:visited, span.MsoHyperlinkFollowed
    27.     {mso-style-priority:99;
    28.     color:purple;
    29.     text-decoration:underline;}
    30. span.E-MailFormatvorlage17
    31.     {mso-style-type:personal-compose;
    32.     font-family:"Calibri","sans-serif";
    33.     color:windowtext;}
    34. .MsoChpDefault
    35.     {mso-style-type:export-only;}
    36. @page WordSection1
    37.     {size:612.0pt 792.0pt;
    38.     margin:70.85pt 70.85pt 2.0cm 70.85pt;}
    39. div.WordSection1
    40.     {page:WordSection1;}
    41. --></style><!--[if gte mso 9]><xml>
    42. <o:shapedefaults v:ext="edit" spidmax="1026" />
    43. </xml><![endif]--><!--[if gte mso 9]><xml>
    44. <o:shapelayout v:ext="edit">
    45. <o:idmap v:ext="edit" data="1" />
    46. </o:shapelayout></xml><![endif]-->
    47. </head>

    Der restliche HTML Code der Mail steht natürlich auch noch drin.

  11. #11
    Frequent User Viertel Megabyte Avatar von TheDarkRose
    Registriert seit
    07.08.2013
    Ort
    Hallein
    Fachbeiträge
    484
    Genannt
    64 Post(s)
    Ist das jetzt die Ausgabe von deinen Code oben, oder hast du jetzt alle Parts ausgegeben?
    Kulturverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  12. #12
    User Bit Themenstarter
    Avatar von Anko
    Registriert seit
    03.03.2014
    Fachbeiträge
    5
    Genannt
    0 Post(s)
    Das ist eine Fehlermeldung, welche erscheint, wenn er versucht eine Email zu lesen.
    Egal welche index ich im getBodyPart angebe, es erscheint immer diese Fehlermeldung.

  13. #13
    Frequent User Viertel Megabyte Avatar von TheDarkRose
    Registriert seit
    07.08.2013
    Ort
    Hallein
    Fachbeiträge
    484
    Genannt
    64 Post(s)
    Zeig doch mal den kompletten Code...
    Kulturverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  14. #14
    User Bit Themenstarter
    Avatar von Anko
    Registriert seit
    03.03.2014
    Fachbeiträge
    5
    Genannt
    0 Post(s)
    Java Code:
    1.             Session session = Session.getInstance(props, auth)
    2.             IMAPSSLStore store = new IMAPSSLStore(session, new URLName("imap", Company.get(7).emailHost, Integer.parseInt(Company.get(7).emailPort), "", Company.get(7).emailUsername, pw));
    3.              
    4.             store.connect();
    5.             Folder inbox = store.getFolder("INBOX")
    6.             inbox.open(Folder.READ_WRITE)
    7.             Flags seen = new Flags(Flags.Flag.SEEN)
    8.             FlagTerm unseenFlagTerm = new FlagTerm(seen, false)
    9.             inbox.search(unseenFlagTerm).each { msg ->
    10.                 mailFrom = msg.getFrom()[0].toString();
    11.                 sbj = msg.getSubject().toString();
    12.                 sentdate = msg.getSentDate().toString();
    13.                 def task = new Task()
    14.                 Multipart multipart =  (Multipart)msg.getContent();
    15.                 content = multipart.getBodyPart(2).getContent();
    16. //              content = msg.getContent();


    Wenn ich die Applikation jetzt starte bekomme ich folgende Fehlermeldung:

    Code:
    Error |
    org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="Generator" content="Microsoft Word 12 (filtered medium)">
    <style><!--
    /* Font Definitions */
    @font-face
    	{font-family:"Cambria Math";
    	panose-1:2 4 5 3 5 4 6 3 2 4;}
    @font-face
    	{font-family:Calibri;
    	panose-1:2 15 5 2 2 2 4 3 2 4;}
    @font-face
    	{font-family:Tahoma;
    	panose-1:2 11 6 4 3 5 4 4 2 4;}
    /* Style Definitions */
    p.MsoNormal, li.MsoNormal, div.MsoNormal
    	{margin:0cm;
    	margin-bottom:.0001pt;
    	font-size:11.0pt;
    	font-family:"Calibri","sans-serif";}
    a:link, span.MsoHyperlink
    	{mso-style-priority:99;
    	color:blue;
    	text-decoration:underline;}
    a:visited, span.MsoHyperlinkFollowed
    	{mso-style-priority:99;
    	color:purple;
    	text-decoration:underline;}
    span.E-MailFormatvorlage17
    	{mso-style-type:personal-compose;
    	font-family:"Calibri","sans-serif";
    	color:windowtext;}
    .MsoChpDefault
    	{mso-style-type:export-only;}
    @page WordSection1
    	{size:612.0pt 792.0pt;
    	margin:70.85pt 70.85pt 2.0cm 70.85pt;}
    div.WordSection1
    	{page:WordSection1;}
    --></style><!--[if gte mso 9]><xml>
    <o:shapedefaults v:ext="edit" spidmax="1026" />
    </xml><![endif]--><!--[if gte mso 9]><xml>
    <o:shapelayout v:ext="edit">
    <o:idmap v:ext="edit" data="1" />
    </o:shapelayout></xml><![endif]-->
    </head>
    <body lang="DE" link="blue" vlink="purple">
    <div class="WordSection1">
    <p class="MsoNormal">Test<o:p></o:p></p>
    <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
    <p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">________________________________________________________________________________________________<o:p></o:p></span></b></p>
    <p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">Mit freundlichen Grüßen<o:p></o:p></span></p>
    <p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
    <p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">Max Mustermann<o:p></o:p></span></p>
    <p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
    <p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"><a href="mailto:ewwe@eef.de"><span style="color:blue">ererrer@few.de</span></a><br>
    <a href="http://www.gfhf.de/"><span style="color:blue">www.fhgfhf.de</span></a><o:p></o:p></span></p>
    </div>
    </body>
    </html>
    ' with class 'java.lang.String' to class 'javax.mail.Multipart'
    Error |
    	at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:360)
    Error |
    	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:599)
    Error |
    	at pms.MailJob$_execute_closure1.doCall(MailJob.groovy:91)
    Error |
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Error |
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    Error |
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Error |
    	at java.lang.reflect.Method.invoke(Method.java:597)
    Error |
    	at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    Error |
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    Error |
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    Error |
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1086)
    Error |
    	at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
    Error |
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:910)
    Error |
    	at groovy.lang.Closure.call(Closure.java:411)
    Error |
    	at pms.MailJob$_execute_closure1.call(MailJob.groovy)
    Error |
    	at groovy.lang.Closure.call(Closure.java:427)
    Error |
    	at pms.MailJob$_execute_closure1.call(MailJob.groovy)
    Error |
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1325)
    Error |
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1297)
    Error |
    	at org.codehaus.groovy.runtime.dgm$148.invoke(Unknown Source)
    Error |
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
    Error |
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
    Error |
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    Error |
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    Error |
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    Error |
    	at pms.MailJob.execute(MailJob.groovy:86)
    Error |
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Error |
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    Error |
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Error |
    	at java.lang.reflect.Method.invoke(Method.java:597)
    Error |
    	at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    Error |
    	at grails.plugin.quartz2.GrailsArtefactJob.execute(GrailsArtefactJob.java:59)
    Error |
    	at grails.plugin.quartz2.GrailsArtefactNonConcurrentJob.execute(GrailsArtefactNonConcurrentJob.java)
    Error |
    	at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
    Error |
    	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)

  15. #15
    User Viertel Megabyte
    Registriert seit
    31.07.2013
    Fachbeiträge
    435
    Genannt
    17 Post(s)
    Cannot cast object '...' with class 'java.lang.String' to class 'javax.mail.Multipart'
    Vermutlich knallt es hier: Multipart multipart = (Multipart)msg.getContent();. getContent() scheint direkt einen String zurückzugeben.

+ Antworten Thema als "gelöst" markieren

Direkt antworten Direkt antworten

Wie viele Beine hat eine Kuh? (Zahlwort)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. (PHP) Benutzername und Email in DB überprüfen
    Von mitch24 im Forum Scriptsprachen
    Antworten: 12
    Letzter Beitrag: 21.01.2014, 12:09
  2. Message Queuing
    Von freezly im Forum Java Enterprise Edition (Java EE)
    Antworten: 2
    Letzter Beitrag: 15.11.2013, 12:11
  3. Missing message description for error code -1001
    Von Unregistered im Forum JOCL
    Antworten: 1
    Letzter Beitrag: 06.09.2011, 14:00
  4. Misleading Error Message
    Von ayork im Forum JCuda
    Antworten: 1
    Letzter Beitrag: 03.04.2011, 03:55

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •