Announcement

Collapse
No announcement yet.

xml als email anhang versenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • xml als email anhang versenden

    hallo zusammen,

    ich hoffe ich bin hier im richtigem forum. ich habe mir eine xml struktur erzeugt und möchte diese jetzt als mail anhang versenden, ich weiß nur leider nicht wie. also mails versenden kann ich und auch einen anhang von der festplatte dranhängen, aber die xml ist noch nicht auf die hdd geschrieben, möchte ich auch nicht ... würde sie gerne gleich ranhängen um nicht unnötig festplatten speicher zu verschwenden. hat jemand eine idee, bzw. einen link?

    beste grüße
    batou

  • #2
    Kommt darauf an, wie du den Anhang versendest. ggf. speichern und wieder löschen
    Christian

    Comment


    • #3
      RE:

      naja noch gar nicht^^

      Code:
      DataSource fileDataSource = new FileDataSource( ); //geht nicht weil, nicht physikalisch vorhanden
      
                  BodyPart messageBodyPart = new MimeBodyPart();
                  messageBodyPart.setDataHandler( new DataHandler(fileDataSource) );
                  messageBodyPart.setFileName("offer.xml");   
                  content.addBodyPart( messageBodyPart );
      so war die idee bis hierhin! die idee mit der temporären datei finde ich nicht so ganz schön ... wäre mir lieber, wenn ich das umgehen könnte.

      Comment


      • #4
        Implementiere mit dem Interface Datasource eine eigene Klasse, die Input- und Outputstream auf den Speicher umleiten
        Christian

        Comment


        • #5
          RE: auf speicher umleiten

          ok, ich glaube da hört es bei mir gerade nen bissel auf, die klasse habe ich implementiert, war nicht das schwierige, aber wie meinst du das mit input und output auf speicher umleiten? gibt es dafür ein beispiel?

          Comment


          • #6
            [highlight=java]
            import java.io.IOException;
            import java.io.InputStream;
            import java.io.OutputStream;

            import javax.activation.DataSource;

            public class MemoryDataSource implements DataSource {

            public String getContentType() {
            return "application/xhtml+xml";
            }

            public String getName() {
            return "offer.xml";
            }

            public OutputStream getOutputStream() throws IOException {
            return null;
            }

            public InputStream getInputStream() throws IOException {
            return null;
            }

            }

            [/highlight]

            Die Methoden getOutputstream und getInputstream sind danach zu implementieren, wie dein XML vorliegt. Als Stream? Als String? Als ????
            Christian

            Comment


            • #7
              hallo, nun ja das ganze liegt bis jetzt noch als DOMSource vor, die frage wäre von mir eigentlich wie bzw. mit welcher variante komme ich denn am einfachsten bzw. am besten zum ziel?

              Comment


              • #8
                Sicherlich das DOM in einen String umsetzen und dann so ungefähr:

                [highlight=java]

                public class MemoryDataSource implements DataSource {
                private String xmlText;
                private String dateiname;

                public String getContentType() {
                return "application/xhtml+xml";
                }

                public String getName() {
                return dateiname;
                }

                public OutputStream getOutputStream() throws IOException {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                return baos;
                }

                public InputStream getInputStream() throws IOException {
                ByteArrayInputStream bis = new ByteArrayInputStream(xmlText.getBytes());
                return bis;
                }

                public String getXmlText() {
                return xmlText;
                }

                public void setXmlText(String xmlText) {
                this.xmlText = xmlText;
                }

                public String getDateiname() {
                return dateiname;
                }

                public void setDateiname(String dateiname) {
                this.dateiname = dateiname;
                }

                }




                [/highlight]
                Christian

                Comment

                Working...
                X