Miten lähetän Java:lla sähköpostin jossa on koodin tekemä .xml-tiedosto liitteenä?
"java send email attachment" ja plop, valmis koodi @ http://www.jguru.com/faq/view.jsp?EID=30251
Ei mene tolla kun mulla on lähetys koodissa import javax.sql.DataSource;
Koska tarvitsee tallentaa myös tilastot MySQL:n.
try {
            String host = "server.domain.tld";
            String from = "sales@domain.tld";
            String to = email;
            // Get system properties
            Properties properties = System.getProperties();
            // Setup mail server
            properties.setProperty("smtp.domain.tld", host);
            // Get the default Session object.
            Session session = Session.getDefaultInstance(properties);
            // Define message
            Message message_email = new MimeMessage(session);
            message_email.setFrom(new InternetAddress(from));
            message_email.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message_email.setSubject(subject);
            // Send the actual HTML message, as big as you like
            message_email.setContent( message, "text/html" );
            // Create the message part
            BodyPart messageBodyPart = new MimeBodyPart();
            // Fill the message
            messageBodyPart.setText(message_Text);
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);
            // Part two is attachment
            messageBodyPart = new MimeBodyPart();
            String filename = "license.xml";
            Writer source = response.getWriter();
            source.write("TEST!");
            //Writer out = response.getWriter();
            // setup print writer
            //PrintWriter pw = new PrintWriter( new OutputStreamWriter( ServletActionContext.getResponse().getOutputStream() ) );
            // close the print writer which will start the download prompt
            //pw.close();
            //DataSource source = new FileDataSource(filename);
            messageBodyPart.setDataHandler(new DataHandler(source, "text/xml"));
            messageBodyPart.setFileName(filename);
            multipart.addBodyPart(messageBodyPart);
            // Put parts in message
            message_email.setContent(multipart);
            // Send the message
            Transport.send(message_email);
            source.close();
            } catch (MessagingException e) {
   			log.error("An error has occurred with sending the email to " + email + ": ", e);
            }Eli millä kirjoitan muutujaan source että se toimii seuraavassa?
messageBodyPart.setDataHandler(new DataHandler(source, "text/xml"));
Annat luokan täyden polun esim.,javax.activation.DataSource source  = new javax.activation.DataSource(new javax.activation.FileDataSource(attachment));
Ei toimi.
BUILD FAILURE
javax.activation.DataSource is abstract; cannot be instantiated
Kotin nyt tällä koodilla:
http://www.java-tips.org/other-api-tips/javamail/how-to-send-an-email-with-a-file-attachment-4.html
Mutta tulee: IOException while sending message
Hjoo katoin unisilla silmillä, pitäs olla javax.activation.DataSource source = new javax.activation.FileDataSource(attachment); kuten virhekin vähän viittaisi. IOException taidettiin mainita myös oman linkkini kommenteissa, piti vissiin käyttää absoluuttista polkua.
Hei sain sen nyt toimimaan kun lisäsin tiedostot Tomcatin /bin kansioon.
Se vaan, että kun kirjoitan jotain tiedostoon niin se ylikirjoittaa koko tiedoston.
Siis pitää saada sellainen että xml-tiedosto on vain muistissa, koska siis xml-tiedosto lähetetään itselle web-lomakkeen avulla ja xml-tiedostoon pitää tulla web-lomakkeen textfieldit xml:nä.
Sain nyt toimimaan siten kun pitää!
Aihe on jo aika vanha, joten et voi enää vastata siihen.