Avatar billede trp79 Nybegynder
01. april 2003 - 21:08 Der er 24 kommentarer og
1 løsning

mailto: udfra textfelt.

Jeg har et textfelt som indeholder en emailadr.
Er det muligt at lave det sådan at når man klikker på teksten i det, så virker det som en html mailto?

Hvis ja, hvordan gøres det så (rent kodemæssigt)?
Avatar billede disky Nybegynder
01. april 2003 - 21:11 #1
snakker vi om java eller javascript ?
Avatar billede arne_v Ekspert
01. april 2003 - 21:19 #2
[forudsat det er Java]

Det er rimeligt nemt at sende en email fra Java, så du kan sagtens
taget text feltets værdi og sende til den email adresse (forudsat at
der er adgang til en mail-server).

Hvis du vil have startet et eksternet email-program kan
det også gøres med Runtime.getRuntime().exec, men jeg ved
ikke hvor nemt det er at få TO feltet udfyldt udfra en værdi
på kommando-linien.
Avatar billede arne_v Ekspert
01. april 2003 - 21:21 #3
Eksempel på at sende email fra Java:

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", "x.x.x.x");
        Session session = Session.getDefaultInstance(props, null);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("nn@somewhere.dk"));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress("nn@somewhere.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", "x.x.x.x");
            Session session = Session.getDefaultInstance(props, null);
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress("nn@somewhere.dk"));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("nn@somewhere.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) {
        }
    }
}

Bemærk at javax.mail pakkerne ikke er med i J2SE, men skal hentes
enten fra J2EE eller som et separat javamail kit.
Avatar billede trp79 Nybegynder
01. april 2003 - 21:38 #4
Jep det er java jeg tænker på.

Jeg håbede egentlig på at man kunne lave det ligesom når man klikker på et mailadresse på en hjemmeside. Men det er måske helt umuligt?
Avatar billede arne_v Ekspert
01. april 2003 - 21:43 #5
Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE mailto:nn@somewhere.dk");

virker hos mig.

Men der er formentlig 1 million forskellige kombinationer af platform og
browser !
Avatar billede arne_v Ekspert
01. april 2003 - 21:44 #6
Du skal så bare putte værdien fra text feltet ind i kommando-linien.
Avatar billede swaq Nybegynder
01. april 2003 - 22:37 #7
Arne, ved du i den forbindelse hvordan man får den der mail-pakke til at du? Jeg har forsøgt at installere JSEE (ved siden af J2SDK) uden succes...
Avatar billede arne_v Ekspert
01. april 2003 - 22:40 #8
Ja.

Du skal enten downloade J2EE og putte j2ee.jar i classpath.

Eller download javamail of jaf kit og putte henholdsvis
mail.jar og activation.jar fra disse i classpath.
Avatar billede swaq Nybegynder
01. april 2003 - 22:48 #9
hvis nu jeg vil proppe dem ind i mit java lib, findes der da en mappe der "tæller" med som classpath?
Avatar billede arne_v Ekspert
01. april 2003 - 22:52 #10
Hvis du placerer det i jre/lib/ext så bør de komme med.

Se:
  http://java.sun.com/docs/books/tutorial/ext/basics/install.html

Men hvorfor ikke putte dem explicit i classpath med -classpath ?

Den dag du opdaterer din JDK så hverken compiler eller kører
din mail app !

[indtil du husker på det her og får fat i filerne igen]
Avatar billede swaq Nybegynder
01. april 2003 - 23:04 #11
enig... good point!, jeg har dog prøvet at putte jar-filer i men classpath uden held før i tiden...

Forresten skal der være en absolut henvisning til jar-filen i classpath'en eller kan jeg nøjes med at henvise til den mappe hvori filen findes?
Avatar billede arne_v Ekspert
01. april 2003 - 23:08 #12
Du skal henvise til selve jar-filen.

Hvis du skal bruge klassen pakke.underpakke.Klasse så får
  -classpath C:\dir
java til at lede efter:
  C:\dir\pakke\underpakke\Klasse.class
men:
  -classpath C:\dir\arkiv.jar
får java til at lede efter:
  pakke/underpakke/Klasse.class
i C:\dir\arkiv.jar
Avatar billede swaq Nybegynder
01. april 2003 - 23:17 #13
oki dokki, thanx alot :-)
Avatar billede trp79 Nybegynder
02. april 2003 - 07:50 #14
Det svarer så på noget af spørgsmålet. Jeg ved at ham, der skal bruge programmet benytter IE så derfor kan jeg snilt bruge dit forslag Arne. Jeg skal så bare på en eller anden måde have en "onclick" på textfeltet, er det muligt?
Avatar billede arne_v Ekspert
02. april 2003 - 08:39 #15
Hvis vi nu siger at det text field er et JTextField, så kalder du
addActionListener og kalder den med en klasse der implementerer
ActionListener og derfor har en metode actionPerformed (du kan godt
lade din hoved klasse implementere ig kalde med this).

Formentlig ar du allerede en action listener, men skal bare have
hapset det rigtige event.
Avatar billede trp79 Nybegynder
02. april 2003 - 11:06 #16
Tak for svaret Arne. Det funker nu :o)
Avatar billede trp79 Nybegynder
02. april 2003 - 11:12 #17
Den åbner dog en tom inet side med url'en mailto:nn@someware.dk
Tror du at det kan undgås?
Avatar billede arne_v Ekspert
02. april 2003 - 11:28 #18
Ved jeg ikke.

MS Internet Explorer ligger langt uden for mit ekspertise område.
Avatar billede trp79 Nybegynder
02. april 2003 - 11:31 #19
Okey, jeg kigger på det.....
Avatar billede arne_v Ekspert
02. april 2003 - 11:58 #20
En ide.

Problemet opstår fordi vi starter MSIE med en mailto URL, den
starter så et mail-program, men selve browser vinduet står åbent.

Rigtigt ?

Måske kan man starte mail-programmet direkte med en mailto URL ?

Bare en ide.
Avatar billede trp79 Nybegynder
02. april 2003 - 12:03 #21
Jeg har prøvet det, men det er desværre ikke muligt :o(
Ellers tak for forslaget :o)
Avatar billede arne_v Ekspert
02. april 2003 - 12:30 #22
Hm.

Lidt snusen på nettet fandt følgende:

C:\Program Files\Outlook Express>msimn /mailurl:mailto:xx@somewhere.dk

hvilket ser ud til at virke (forudsat at man har Outlook Express installeret).
Avatar billede arne_v Ekspert
02. april 2003 - 12:31 #23
Altså:

.exec("\"C:\Program Files\Outlook Express\msimn.exe\" /mailurl:mailto:xx@somewhere.dk");
Avatar billede trp79 Nybegynder
02. april 2003 - 13:04 #24
Det er faeme lækkert Arne!
Jeg prøvede ellers med msimn /?, msimn /h, msimn -h, msimn -? og msimn ss@oo.dk men det funkede ikke...

Nu siger du lige at du snusede rundt... hvor leder du efter sådanne ting?
Avatar billede arne_v Ekspert
02. april 2003 - 14:19 #25
Google search
msimn.exe command line
første link
http://www.okinfoweb.com/moe/general/gen_047.htm
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