Avatar billede fear Nybegynder
03. december 2001 - 13:12 Der er 10 kommentarer og
1 løsning

Mail i JSP

Jeg kan ikke rigtig få et mail program til at virke i JSP.
Jeg har brugt noget kode fra et gammelt spørgsmål.
Jeg får ingen fejl. Men der bliver aldrig sendt en mail!!


Her er java klassen:

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;


public class SendMail
{
    String recipient=\"\";
    String sender= \"\";
        String body=\"\";
        String subject=\"\";
       
    public void setRecipient( String recipient )
    {
            this.recipient = recipient;
    }
   
    public void setSender( String sender)
    {
            this.sender = sender;
    }
   
        public void setBody(String body)
        {
            this.body=body;
        }
       
        public void setSubject(String subject)
        {
            this.subject=subject;
        }

        public boolean sendMail()
    {
        boolean sendMail = true;
        try
        {
            Properties props = new Properties();
            props.put(\"mail.smtp.host\", \"Mail1.stofanet.dk\");
           
            Session mailsession = Session.getDefaultInstance(props, null);
           
            Message msg = new MimeMessage(mailsession);
            msg.setFrom(new InternetAddress(sender));
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
            msg.setSubject(subject);
            msg.setText(body);
           
            Transport.send(msg);

                        return true;
        }
        catch( AddressException e )
        {
            return false;
        }
        catch( MessagingException e )
        {
            return false;
        }
    }
}





og den bliver kaldt fra denne JSP side:

<%@ page import=\'SendMail\' %>
<jsp:useBean id=\"sm\" scope=\"session\" class=\"SendMail\" />
<jsp:setProperty name=\"sm\" property=\"*\"/>

<%
if (request.getMethod().equals(\"post\"))
{
  sm.sendMail();

}
%>

<html>
<body>
<form method=\"post\">
Modtager <input type=\"text\" name=\"recipient\"><br>
Afsender <input type=\"text\" name=\"sender\"><br>
Emne <input type=\"text\" name=\"subject\"><br>
Indhold <input type=\"text\" name=\"body\"><br>
<input type=\"submit\" value=\"send\">
</form>
</body>
</html>



Hvad kan problemmet være?

Jeg bruger en Resin Server.
Avatar billede disky Nybegynder
03. december 2001 - 13:16 #1
i dine catch skriv

e.printStackTrace()

og fortæl hvad den så siger i din log fil
Avatar billede fear Nybegynder
03. december 2001 - 13:28 #2
den skriver intet.
den kommer ikke ind i catch\'en

det eneste der sker på serveren er at den skriver:

--closing application /
--initializing application /
Avatar billede disky Nybegynder
03. december 2001 - 13:30 #3
mystisk skulle ellers være god nok.

prøv at ret Mail1.stofanet.dk til mail1.stofanet.dk
Avatar billede fear Nybegynder
03. december 2001 - 13:36 #4
det hjalp ikke.

den kommer aldrig ind i sendMail()!!
(jeg har lavet en test)
Avatar billede disky Nybegynder
03. december 2001 - 13:39 #5
kommer den ind i if\'en ? i jsp siden ?
Avatar billede fear Nybegynder
03. december 2001 - 13:55 #6
Nu virker det.

den kommer ikke ind i if\'en.

hvis jeg skriver
if (1==1)
kommer den selvfølige derind, og mailen bliver afsendt.

Men hvorfor virker dette ikke?
<%
if (request.getMethod().equals(\"post\"))
{
  sm.sendMail();

}
%>
Avatar billede disky Nybegynder
03. december 2001 - 13:57 #7
fjern din pageimport (1. linie i jsp siden)

og prøv igen.

Det skulle gerne virker, jeg gør det tit på den måde
Avatar billede fear Nybegynder
03. december 2001 - 14:04 #8
Nej det går ikke.
så kommer følgende fejl:

/examples/thazse/Mail.jsp:2: Class _examples._thazse.SendMail not found.
      SendMail sm;
      ^
/examples/thazse/Mail.jsp:4: Class _examples._thazse.SendMail not found.
        sm = (SendMail) session.getValue(\"sm\");
              ^
/examples/thazse/Mail.jsp:6: Class _examples._thazse.SendMail not found.
          sm = new SendMail();
                  ^
/examples/thazse/Mail.jsp:13: Variable sm may not have been initialized.
sm.sendMail();



jeg er ret sikker på at fejlen ligger i if\'en

if (request.getMethod().equals(\"post\"))?
Avatar billede disky Nybegynder
03. december 2001 - 14:25 #9
øh den pageimport skulle slet ikke give de fejl.

Din usebean styrer den klasse.

meget meget mystisk
Avatar billede fear Nybegynder
03. december 2001 - 14:28 #10
nå, men det må jeg selv finde ud af.
tak for hjælpen.
Avatar billede disky Nybegynder
03. december 2001 - 14:31 #11
jeg tror det er et opsætnings problem af resin.

for koden ser umiddelbart god nok ud (minder frygteligt meget om min egen kode som funker)
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