Avatar billede flar74 Nybegynder
23. juli 2007 - 17:40 Der er 6 kommentarer

Javamail Authentication

Hejsa derude.

jeg har kodet følgende, men jeg kommer ikke igennem pga. authenticationen til min mailserver. jeg har tjekket mailserveren og den er sat op rigtigt. er der noget jeg har glemt ?

<%@page import="javax.mail.*"%>
<%@page import="javax.mail.internet.MimeMessage"%>
<%@page import="javax.mail.internet.InternetAddress"%>
<%@page import="java.util.Properties"%>
<%@page import="java.io.UnsupportedEncodingException"%>




<%
Session mailSession = Session.getInstance(new Properties());
    Message message = new MimeMessage(mailSession);
    Transport transport = null;
    try {
        message.setContent("XXX recommends www.mail.com", "text/plain");
        message.setSubject("XXX recommends www.mail.com");

        message.setFrom(
            new InternetAddress("flemming.larsen@mail.com", "mail.com"));
        message.setRecipient(Message.RecipientType.TO,
            new InternetAddress(request.getParameter("email"), request.getParameter("email")));

        transport = mailSession.getTransport("smtp");
        transport.connect("80.6.174.44", "brugernavn", "Password");

        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    } catch (MessagingException e) {
        out.print(e);
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        out.print(e);
        e.printStackTrace();
    }  finally {
        if(transport != null) try {
            transport.close();
        } catch (MessagingException e) {
            out.print(e);
            e.printStackTrace();
        }
    }
%>
Avatar billede jack_pe Nybegynder
23. juli 2007 - 19:50 #1
Jeg syntes ikke jeg i koden kan finde
smtp serveren der skal kaldes for at sende mailen?

Jeg har følgende kode og det virker for mig på en tomcat 6.0

public static void sendEmail(String[] users, String comment, String subjekt, String from, String smtp) {
       
        try {
          Properties props = System.getProperties();
            props.put("mail.smtp.host", smtp);
           
            Session session = Session.getDefaultInstance(props, null);
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            InternetAddress[] toaddr = new InternetAddress[users.length];
           
            for(int i = 0; i < users.length; i++) {
                toaddr[i] = new InternetAddress(users[i]);
            }
           
            message.addRecipients(Message.RecipientType.TO, toaddr);
            message.setSubject(subjekt);
            message.setText(comment);
            Transport.send(message);
           
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (SendFailedException e) {
            e.printStackTrace(); 
        } catch (MessagingException e) {
            e.printStackTrace();           
        }
    }
Avatar billede jack_pe Nybegynder
23. juli 2007 - 19:54 #2
glemte lige at sige at du kan kalde metoden på følgende måde

String subject        = "dette er en email subject ";
String from            = "mail@mail.biz";
String[] users        = {"tilmail@gmail.com"};
String smtp            = "smtp.mail.dk";     
String comment        =  "Davs du";

mail.Sendmail(users, comment, subject, from, smtp);
Avatar billede flar74 Nybegynder
23. juli 2007 - 20:00 #3
jeg har også siddet og læst på diverse sider og her kan jeg se at mange bruger metoden props.put
props.put("mail.smtp.host", smtp);
men jeg kan ikke se hvor jeg skal smide den ind henne.

jeg har forsøgt :

Properties props = System.getProperties();
            props.put("mail.smtp.host", smtp);
transport = mailSession.getTransport("smtp");
        transport.connect("localhost", "brugernavn", "Password");


jeg må indrømme at jeg er ikke den stærkeste i java, såå..
Avatar billede jack_pe Nybegynder
23. juli 2007 - 20:15 #4
hej igen prøv at gøre således

Properties props = System.getProperties();
          props.put("mail.smtp.host", smtp);

Session mailSession = Session.getDefaultInstance(props, null);

det virker for mig.

Mvh. Jack
Avatar billede jack_pe Nybegynder
23. juli 2007 - 20:16 #5
lige en ting til

Anvend denne linie
Session mailSession = Session.getDefaultInstance(props, null);

istedet for din line
Session mailSession = Session.getInstance(new Properties());

Mvh. Jack
Avatar billede flar74 Nybegynder
08. oktober 2007 - 10:08 #6
tak jack_pe..søegr du for at kunne modtage point'ene :-)
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