Avatar billede mikmakmuk Nybegynder
21. januar 2003 - 03:01 Der er 15 kommentarer og
2 løsninger

java mail

Jeg er i gang med at lave en klasse som skal sende mails til en gruppe. Det er i forbindelse med et nyhedsbrev. Lige nu gør jeg sådan her.     

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("gaestebog");
        m.setText("Besked fra"+navn);       
       
        Address address = new InternetAddress("email", navn);
        m.setFrom(address);
        Address toAddress = new InternetAddress("email");
        m.addRecipient(Message.RecipientType.TO, toAddress);
       
        Transport trans = session.getTransport("smtp");
        trans.send(m);
       
        }
       
        catch (MessagingException e)
        {
            System.out.println("MessagingException");
        }

Mit spørgsmål er om der er en som kan give mig et hint til hvordan jeg formatterer de mails jeg sender. Jeg ville jo gerne have det til at se lidt smart ud isteden for at det bare er tekst
m.setText("Besked fra"+navn);
Avatar billede mikmakmuk Nybegynder
21. januar 2003 - 03:10 #1
Det må være et eller andet med at jeg skal ændre MIME-typen fra text/plain til text/html, men hvordan dælen gør jeg det
Avatar billede disky Nybegynder
21. januar 2003 - 07:46 #2
Du skal rette
Do everything as if you were sending a text message, but

m.setText("Besked fra"+navn);
til
m.setContent(("Besked fra"+navn, "text/html");

kig evt på.
http://developer.java.sun.com/developer/onlineTraining/JavaMail/contents.html#BasicHTMLSending
Avatar billede arne_v Ekspert
21. januar 2003 - 08:23 #3
Eksempel:

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendEmail {

    public static void main(String[] args) {
        sendTextEmail();
        sendHtmlEmail();
    }
    public static void sendTextEmail() {
        try {
            Properties props = System.getProperties();
            props.put("mail.smtp.host", "192.168.1.10");
            Session session = Session.getDefaultInstance(props, null);
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress("arne_v@mail.danbbs.dk"));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("arne_v@mail.danbbs.dk"));
            message.setSubject("Test");
            message.setText("Dette er en test\n" +
                            "Næste linie");
            Transport.send(message);
        } catch (AddressException e) {
        } catch (MessagingException e) {
        }
    }
    public static void sendHtmlEmail() {
        try {
            Properties props = System.getProperties();
            props.put("mail.smtp.host", "192.168.1.10");
            Session session = Session.getDefaultInstance(props, null);
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress("arne_v@mail.danbbs.dk"));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("arne_v@mail.danbbs.dk"));
            message.setSubject("Test");
            message.setContent("<H1>Overskrift</H1>" +
                              "Dette er en test<BR>\n" +
                              "Næste linie<BR>" +
                              "<A HREF=\"http://java.sun.com/\">link</A>",
                              "text/html");
            Transport.send(message);
        } catch (AddressException e) {
        } catch (MessagingException e) {
        }
    }
}
Avatar billede arne_v Ekspert
21. januar 2003 - 08:25 #4
Bemærk, at ikke alle mail-programmer understøtter HTML og
at HTML ser meget forvirrende ud i et mail-program der
ikke understøtter HTML.

Så jeg vil fraråde email i HTML til modtagere som du ikke ved
hvilket email program de bruger.
Avatar billede mikmakmuk Nybegynder
21. januar 2003 - 10:48 #5
Tak for hjælpen? Er der en måde at finde ud af hvilke e-mail programmer der er de mest udbredte og om de understøtter html
Avatar billede arne_v Ekspert
21. januar 2003 - 11:04 #6
De mest udbredte er nok:
  Microsoft Outlook
  Microsoft Outlook Express
  Lotus cc:mail
  Lotus Notes
  Novell GroupWise
  Netscape Messenger

Jeg ved at Microsoft og Netscape produkterne forstår HTML.

Jeg vil tro at Lotus og Novell produkterne også gør.

Mail-programmer som ikke forstår HTML er Unix og VMS tekst-baserede
mail-programmer.

Generelt vil en meget meget stor del af verdens email-brugere
få præsenteret HTML fornuftigt.

Men du må vurdere hvordan din modtager skare er mail-program
mæssigt og hvor stor fordelen er ved at sende HTML i.s.f. text.
Avatar billede mikmakmuk Nybegynder
21. januar 2003 - 12:12 #7
Det er en blandet skare. Jeg vil tro at de fleste bruger Microsoft produkter. Nyhedsbrevet skal helst se lidt smart ud, så jeg er nok "nød" til at bruge noget HTML. Jeg har heller ikke, så vidt jeg ved, mulighed for at vide hvilket e-mail program den enkelte bruger, så jeg kan jo ikke tilpasse den enkelte mail. Det ville ellers være smart, så kunne jeg jo bare skrue emailen sammen så den passende
Avatar billede disky Nybegynder
21. januar 2003 - 12:41 #8
Det er meget vigtigt du kender modtager skaren, hvis det er computer nørder er der mange der flipper fuldstændigt ud hvis man sender html i en email.
Avatar billede trp79 Nybegynder
21. januar 2003 - 13:14 #9
Er mail package'n i 1.4 eller er det noget der skal installeres seperat?
Jeg prøvede lige at compilere arne eks. men fik denne fejl:

cannot resolve symbol
symbol  : class Message 
location: package mail
import javax.mail.Message;
                  ^
Avatar billede disky Nybegynder
21. januar 2003 - 13:52 #10
Du skal enten have javamail pakken installeret, eller endnu bedre hele J2EE pakken, den indeholder også Mail.

Tag og ret i din egen kode, den kender du, det skaber færre problemmer end at begynde at rode med andres eksempler.
Avatar billede arne_v Ekspert
21. januar 2003 - 13:54 #11
Mail er en del af J2EE, så du skal have J2EE SDK (mere præcist j2ee.jar).

Alternativt kan du downloade det separat, men jeg har aldrig prøvet.
Avatar billede trp79 Nybegynder
21. januar 2003 - 14:16 #12
Det var nu også bare for at prøve :o) Men jeg henter da straks J2EE, takker :o)
Avatar billede mikmakmuk Nybegynder
21. januar 2003 - 15:04 #13
Disky --> Det eneste jeg ved om dem som skal modtage mailen er at de interesserer sig for indholdet. Jeg er jo ikke ude på ballade, så jeg gør det nemt og bekvemt at melde sig til og fra. Jeg overvejer lidt at droppe html'en i mailen men simpelthen bare sende en link som hedder noget i retning af "Se nyt nyhedsbrev". Det er der vel ingen som kan blive sure over, hvis de selv at valgt at modtage det :-)
Avatar billede mikmakmuk Nybegynder
21. januar 2003 - 15:07 #14
Jeg kunne jo egenligt også bare give dem valget i det øjeblik de melder sig til
Avatar billede arne_v Ekspert
21. januar 2003 - 15:13 #15
Det er der faktisk en del der gør.
Avatar billede mikmakmuk Nybegynder
21. januar 2003 - 15:25 #16
Er det ikke den smarteste måde at gøre det på. Så er der da ingen som kan blive sure :-)
Avatar billede arne_v Ekspert
21. januar 2003 - 15:47 #17
Hvis det er godt nok til Amazon, så er det sikkert også godt nok til dig.
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