Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 21:02 Der er 29 kommentarer og
1 løsning

Servlets og videresendelse af mail

Hej

Er der nogen som ved om der findes en metode hvormed man på et responseobjekt i en servlet kan sende en beskemt besked til en bestemt e-mail-adr. Det er fordi jeg har lavet en gæstebog for en ven og han vil gerne vide når der er nye indlæg.
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 21:26 #1
Der skal du bruge javamail fra sun
http://java.sun.com/products/javamail/index.html
og kig evt. på Logicals svar i et tidligere indlæg
http://www.eksperten.dk/spm/97143
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 21:49 #2
Hvor finder jeg j2ee.jar henne. Hvis du har den gider du så ikke lige sende den til mikbis1@mail.dk
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 21:57 #3
den finder du som en del af j2eesdk, som du kan downloade her.
http://java.sun.com/j2ee/sdk_1.3/index.html

Om mere information om j2ee generelt, så prøv
http://java.sun.com/j2ee

men du skal ikke bruge den hvis du bare skal hente mail. Der er det nok at hente javamail(nævnt ovenover) og
Javabeans Activation Framework
http://java.sun.com/products/javabeans/glasgow/jaf.html
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:15 #4
Hvad går galt?

Det er her kæden knækker
Properties props = System.getProperties();


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.mail.*;

public class Tilfoj extends HttpServlet
{
        public void doPost (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
           
        response.setContentType(\"text/html\");
           
        String navn = request.getParameter (\"navn\");
        String email = request.getParameter (\"email\");
        String hjemmeside = request.getParameter (\"hjemmeside\");
        String kommentar = request.getParameter (\"kommentar\");
                   
 
        Databaseforbindelse d = new Databaseforbindelse(\"sun.jdbc.odbc.JdbcOdbcDriver\",\"jdbc:odbc:unicykel\");
       
        d.insertUpdate(\"INSERT INTO kommentar (navn,email,hjemmeside,kommentar) VALUES (\'\"+navn+\"\',\'\"+email+\"\',\'\"+hjemmeside+\"\',\'\"+kommentar+\"\')\");
        d.close();   
       
        try
        {
            Thread.sleep(2000);
        } catch (InterruptedException e){}
                   
       
        Properties props = System.getProperties();
       
        props.put(\"mail.smtp.host\",config.get(\"SMTPMailServer\"));
        Session session = Session.getInstance(props, null);
       
        Message m = new MimeMessage(session);
        m.setSubject(\"My first letter\");
        m.setText(\"Hello\");        
        Address address = new InternetAddress(\"president@whitehouse.gov\", \"George Bush\");
        m.setFrom(address);
        Address toAddress = new InternetAddress(\"vice.president@whitehouse.gov\");
        //Address ccAddress = new InternetAddress(\"first.lady@whitehouse.gov\");
        m.addRecipient(Message.RecipientType.TO, toAddress);
        //m.addRecipient(Message.RecipientType.CC, ccAddress);
       
        Transport trans = session.getTransport(\"smtp\");
        trans.send(m);

        response.sendRedirect(\"http://localhost:8080/lars/servlet/Opslagstavle\");
   
     
        }
       
}

Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:16 #5
Jeg ved godt at der er en masse som skal ændres, men jeg vil bare kunne kompilere det
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 22:20 #6
Properties ligger i java.util
Så du skal lige huse at lave
import java.util.*;
Og så kan jeg afsløre at der heller ikke er noget objekt der hedder config, men at det bare er en konfiguration af variable, som du evt. kan hardcode istedet
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:24 #7
Hvordan hardkoder jeg det??? Jeg er ikke så god til det her, men jeg vil jo gerne lære. Jeg håber du bærer over med mig *G*
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 22:29 #8
fx kan din kode se sådan her ud
Properties props = System.getProperties();
       
        props.put(\"mail.smtp.host\",\"smtp.cybercity.dk\");
        Session session = Session.getInstance(props, null);
       
        Message m = new MimeMessage(session);
        m.setSubject(\"ny posting\");
        m.setText(\"Der er kommet ind ny post. Check den lige ud\");       
        Address address = new InternetAddress(\"lars@vip.cybercity.dk\", \"Forom info\");
        m.setFrom(address);
        Address toAddress = new InternetAddress(\"lars@vip.cybercity.dk\");
        m.addRecipient(Message.RecipientType.TO, toAddress);
        Transport trans = session.getTransport(\"smtp\");
        trans.send(m);

Det er ikke kønt men det virker
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:34 #9
Nu brokker den sig i

        Message m = new MimeMessage(session);
       
Address address = new InternetAddress(\"lars@vip.cybercity.dk\", \"Forom info\");

        Address toAddress = new InternetAddress(\"lars@vip.cybercity.dk\");
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:35 #10
Hvor mange point vil du have for det her? *G* Jeg ved godt jeg er håbløs
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 22:38 #11
nu går vi jo ikke alle efter pointene, men synes at hjælpe andre er fedt:)

Som nævnt i den tidligere post, som jeg henviste til i det første svar, så ligger klasserne i
javax.mail og java.mail.internet
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:41 #12
Jamen for søren, hvad er det jeg gør forkert
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:45 #13
Jeg har downloaded javamail-1_2 fra sun og lagt .jar filerne i /lib
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 22:48 #14
du skal bare sørge for at de ligger i classpath for din applikations-server, og husk også at hente activations framework. Eller vil det ikke virker
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:52 #15
Hvor finder jeg det?
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:54 #16
Det er totalt fedt at du gider hjælpe
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 22:55 #17
i min anden post er der et link til det:)
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 22:58 #18
Det fandt jeg ud af men det virker stadig ikke *SNØFT*
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 23:02 #19
import java.mail.internet;
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 23:04 #20
nu var det jo ikke helt sandt det jeg skrev. Beklager
import javax.mail.internet.*;
import javax.mail.*;
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 23:05 #21
activation.jar ligger i /lib og er added i den profil jeg bruger i JCreator 
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 23:08 #22
Så er det her det går galt.     

Message m = new MimeMessage(session);
        m.setSubject(\"ny posting\");
        m.setText(\"Der er kommet ind ny post. Check den lige ud\");       
        Address address = new InternetAddress(\"lars@vip.cybercity.dk\", \"Forom info\");
        m.setFrom(address);
        Address toAddress = new InternetAddress(\"lars@vip.cybercity.dk\");
        m.addRecipient(Message.RecipientType.TO, toAddress);
        Transport trans = session.getTransport(\"smtp\");
        trans.send(m);
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 23:09 #23
Du er en meget tålmodig mand
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 23:12 #24
Nu fortæller du jo ikke lige hvad fejlen er!
Hvis den ikke kan compile, så er det fordi at din javamail.jar filer ikke ligger i classpath. Nu har du vel husket at pakke zipfilen ud!
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 23:12 #25
Jeg tror sku det lykkes
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 23:14 #26
Du skal have tusinde tak for hjælpen.
Avatar billede lbhansen Nybegynder
16. oktober 2001 - 23:16 #27
det var så lidt:)
Avatar billede mikmakmuk Nybegynder
16. oktober 2001 - 23:18 #28
Nej det var ikke. Det var meget. Uden din hjælp havde jeg sku da ikke fundet ud af det
Avatar billede mikmakmuk Nybegynder
17. oktober 2001 - 08:09 #29
Hej

Nu kan det compile, men når jeg kører servleten kommer den med fejl. Kig eventuelt på
http://mikmak.dyndns.dk:8080/mik
tryk på gæstebog og læg en besked
så kommer fejlen

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;

public class Tilfoj extends HttpServlet
{
        public void doPost (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
           
            response.setContentType(\"text/html\");
           
            String navn = request.getParameter (\"navn\");
            String besked = request.getParameter (\"besked\");
   
            Databaseforbindelse d = new Databaseforbindelse(\"sun.jdbc.odbc.JdbcOdbcDriver\",\"jdbc:odbc:mik\");
       
        //Mysqlforbindelse d = new Mysqlforbindelse(\"jdbc:mysql://192.168.1.11/gaestebog?user=mik&password=mik\",
            //                                            \"org.gjt.mm.mysql.Driver\");
       
        d.insertUpdate(\"INSERT INTO besked (navn,besked) VALUES (\'\"+navn+\"\',\'\"+besked+\"\')\");
        d.close();   
       
        try
        {
            Thread.sleep(2000);
        } catch (InterruptedException e){}
                   
        Properties props = System.getProperties();
       
        props.put(\"mail.smtp.host\",\"smtp.mail.dk\");
        Session session = Session.getInstance(props, null);
     
        try
        {
       
        Message m = new MimeMessage(session);
       
        m.setSubject(\"ny posting\");
        m.setText(\"Der er kommet ind ny post. Check den lige ud\");       
        Address address = new InternetAddress(\"mikbis1@mail.dk\", \"Forom info\");
        m.setFrom(address);
       
        Address toAddress = new InternetAddress(\"mikbis1@mail.dk\");
        m.addRecipient(Message.RecipientType.TO, toAddress);
        Transport trans = session.getTransport(\"smtp\");
        trans.send(m);
       
        }
       
        catch (MessagingException e)
        {
            System.out.println(\"MessagingException\");
        }
       
       
        response.sendRedirect(\"http://mikmak.dyndns.dk:8080/mik/index/opslag.htm\");
   
     
        }
       
}

Avatar billede lbhansen Nybegynder
17. oktober 2001 - 10:29 #30
det er fordi at mail.jar ikke ligger et rigtigt sted i forhold til Resin. Jeg ved ikke om den selv har et lib bibliotek, hvor dens jar filer skal ligge(det har den nok).

Ellers kan du prøve på at ligge dem i lib biblioteket på din egen webapp
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester