Avatar billede digitalsoul Nybegynder
18. maj 2004 - 10:33 Der er 4 kommentarer og
1 løsning

Javamail smtp authentication

Jeg har siddet og kigget på arne_vs javamail introduktion (God artikel btw :)

Og jeg skal bruge noget til at sende nogle mails ud.

Men hvis nu man ikke bruger ens isp smtp server, og eks. et fra et hosting firma. De kræver jo normalvis at man skal sende et username + password med, hvilket min også gør.

Så hvordan gør man lige det?
Avatar billede digitalsoul Nybegynder
18. maj 2004 - 10:34 #1
Hvis i kunne tage udgangs punkt i understående kode ville det være super skønt :)


package mailtest;

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



public class MailTest {
    private final static String SMTP_SERVER = "test.javamail.dk";
    private final static String FROM = "jav@mail.dk";
   
    public static void send(String to, String subj, String body) {
        try {
            //Get system properties
            Properties props = System.getProperties();
            //Setup mail server
            props.put("mail.smtp.host", SMTP_SERVER);
            //Get session
            Session session = Session.getDefaultInstance(props, null);
            //Define message
            MimeMessage message = new MimeMessage(session);
            //Set the from address
            message.setFrom(new InternetAddress(FROM));
            //Set the to address
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject(subj, "ISO-8859-1");
            //Set text body to ISO-8859-1 (Danish letters)
            message.setText(body, "ISO-8859-1");
            //Send message
            Transport.send(message);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        send("jav@mail.dk", "Test 1 med ÆØÅ", "ABC\n123\nÆØÅ\n");
        send("jav@mail.dk", "Test 2 med ÆØÅ2", "ABC\n123\nÆØÅ\n");
        send("jav@mail.dk", "Test 3 med ÆØÅ3", "ABC\n123\nÆØÅ\n");
        send("jav@mail.dk", "Test 4 med ÆØÅ4", "ABC\n123\nÆØÅ\n");
        send("jav@mail.dk", "Test 5 med ÆØÅ5", "ABC\n123\nÆØÅ\n");
    }
}
Avatar billede arne_v Ekspert
18. maj 2004 - 10:51 #2
Hvis jeg læser:

http://www.jguru.com/faq/view.jsp?EID=48895

korrekt kan du erstatte:

Transport.send(message);

med:

Transport transport = session.getTransport("smtp");
transport.connect(SMTP_SERVER, username, password);
transport.sendMessage(message, new InternetAddress[] { new InternetAddress(to) });
Avatar billede arne_v Ekspert
18. maj 2004 - 10:53 #3
http://www.websina.com/bugzero/kb/sunmail-properties.html

har en variant:

Transport transport = session.getTransport("smtp");
transport.connect(SMTP_SERVER, username, password);
message.saveChanges();
transport.sendMessage(message, message.getAllRecipients());
transport.close();

prøv den variant !
Avatar billede digitalsoul Nybegynder
18. maj 2004 - 11:04 #4
Det virker :)

Mange tak.

Opretter du lige et svar?
Avatar billede arne_v Ekspert
18. maj 2004 - 11:13 #5
ok
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