Avatar billede arvad Nybegynder
11. september 2002 - 14:16 Der er 9 kommentarer og
1 løsning

Mail fra applet

Jeg skal via min applet sende en mail - Hvordan gør man det??
Avatar billede iceworld.tk Nybegynder
11. september 2002 - 14:37 #1
Hmm ... bruger POST  i PHP
Avatar billede arvad Nybegynder
11. september 2002 - 14:46 #2
PHP???? Det er vist noget javascript du snakker om...
Det her er vist et spørgsmål der er stillet til ren Java ;-)
Avatar billede jword Nybegynder
11. september 2002 - 14:56 #3
har du en smtp server til at sende igennem?
Avatar billede arvad Nybegynder
11. september 2002 - 15:13 #4
Det har jeg på serveren - Eller kan "nemt" sætte den op...
Avatar billede arvad Nybegynder
11. september 2002 - 15:13 #5
Derudover er appletten sign'ed...
Avatar billede aslan Nybegynder
11. september 2002 - 16:47 #6
Jeg har faktisk lige lavet det her. Det er en JFrame der kan sende emails med vedhæftede filer, men jeg har dog ikke afprøvet den som en applet så hvis du lige kunne give respons på hvordan den virker der ville det være godt.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.*;
import java.util.*;
import javax.activation.*;
/*
Erol Eskici
e.e@sport.dk
11/9-2002
*/


public class JavaMail extends JFrame implements ActionListener
{
   
    protected String to;
 
    protected String from;

    protected String subject;
 
    protected String body;
     
    Container panel = getContentPane();
    JTextArea felt;
    JScrollPane area;
    JLabel overskriftL,tilL,fraL;
    JTextField overskrift,til,fra;
    JButton knap,vedhaeft;
    String navne[] = {"Frank","Ismar","Lars","Erol"};
    String emails[]={"pingvin@bille.dk","ismar@mc.dk","lakamo@at.dk","e.e@sport.dk"};
    JComboBox box;
    JFileChooser fc = new JFileChooser();
    File fil=null;

   
    public JavaMail()
    {
        panel.setLayout(null);
       
        felt = new JTextArea();
        area = new JScrollPane(felt);
        felt.setLineWrap(true);
        felt.setWrapStyleWord(true);       
        area.setBounds(25,150,500,200);
        panel.add(area);
       
        fraL = new JLabel("Til");
        fraL.setBounds(25,40,80,20);
        fraL.setFont(new Font("Arial",Font.PLAIN,12));
        panel.add(fraL);
       
        box = new JComboBox(navne);
        box.setBounds(90,40,100,20);
        box.setFont(new Font("Arial",Font.PLAIN,12));
        panel.add(box);
       
        tilL = new JLabel("Fra");
        tilL.setBounds(25,80,80,20);
        tilL.setFont(new Font("Arial",Font.PLAIN,12));
        panel.add(tilL);               
       
        fra = new JTextField();
        fra.setBounds(90,80,200,20);
        panel.add(fra);
       
        overskriftL = new JLabel("Overskrift");
        overskriftL.setBounds(25,120,80,20);
        overskriftL.setFont(new Font("Arial",Font.PLAIN,12));
        panel.add(overskriftL);       
       
        overskrift = new JTextField();
        overskrift.setBounds(90,120,200,20);
        panel.add(overskrift);
       
       
        vedhaeft = new JButton("Vedhæft");
        vedhaeft.setBounds(420,80,100,20);
        vedhaeft.addActionListener(this);
        panel.add(vedhaeft);       
       
       
        knap = new JButton("Send");
        knap.setBounds(420,120,100,20);
        knap.addActionListener(this);
        panel.add(knap);
       
        setBounds(200,100,550,400);
        setVisible(true);
    }
    public void sendMedFil(String fil)///send med fil
    {
      try {
         
      String text="Sender en fil";
     
      Properties props = System.getProperties();

      props.put("mail.smtp.host","/*din mail server her*/");

      Session session = Session.getInstance(props, null);
      session.setDebug(false);     
     

      Message msg = new MimeMessage(session);
     
      msg.setFrom(new InternetAddress(from));
     
      InternetAddress[] address ={new InternetAddress(to)};
     
      msg.setRecipients(Message.RecipientType.TO, address);
      msg.setSubject(subject);
     
      MimeBodyPart textPart = new MimeBodyPart();
      textPart.setContent(text,"text/plain");
      File f = new File(fil);
      MimeBodyPart attachFilePart = new MimeBodyPart();
      FileDataSource fds = new FileDataSource(fil);
      attachFilePart.setDataHandler(new DataHandler(fds));
      attachFilePart.setFileName(fds.getName());
      Multipart mp = new MimeMultipart();
      mp.addBodyPart(textPart);
      mp.addBodyPart(attachFilePart);
      msg.setContent(mp);
      Transport.send(msg);
       

      }
      catch (Exception e)
      {
          System.out.println(e);
      }       
    }
    public void sendUdenFil()/// send uden fil
    {
        try {

            Properties props = System.getProperties();

            props.put("mail.smtp.host","Smtp.mail.dk");

            Session session = Session.getInstance(props, null);
            session.setDebug(false);

            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject(subject);
            message.setText(body);
            Transport.send(message);
           
        }catch (Exception e)
        {
            JOptionPane.showMessageDialog(this,
            "Du har ikke udfyldt felterne rigtig....",
            "Oplysning",
            JOptionPane.PLAIN_MESSAGE);
       
        }
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==knap)
        {
            if(fra.getText().length()==0 || felt.getText().length()==0)
            {
                  JOptionPane.showMessageDialog(this,
                "Alle felter SKAL udfyldes...",
                "Oplysning",
                JOptionPane.PLAIN_MESSAGE);               
            }
            else
            {
               
              to = emails[box.getSelectedIndex()];
              from = fra.getText();
              subject = overskrift.getText();
              body = felt.getText();
           
              sendMedFil(""+fil);
              //sendUdenFil();
            }
        }
        if(e.getSource()==vedhaeft)
        {
           
            int file = fc.showOpenDialog(JavaMail.this);
            if (file == JFileChooser.APPROVE_OPTION)
            {
                fil = fc.getSelectedFile();
                System.out.println(fil);
            }
        }
    }
    public static void main(String[] aslan)
    {
        new JavaMail();
    }
   
}
Avatar billede jword Nybegynder
11. september 2002 - 18:04 #7
eller uden brug af javamail:

try {
            try {
             
            Socket socket = new Socket(host, port);
                   
            PrintWriter out out = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
           
            buff = in.readLine();
       
        out.println("MAIL From: " + emailkonto);
        System.out.println(in.readLine());
           
       
            out.println("RCPT To: " + recipient);
           
            System.out.println(reply = in.readLine());
       
        out.println("DATA");   
            reply = in.readLine();
       

        //dette er for mail-headeren
        out.println("From: " + from);
            out.println("To: " + to);
            out.println("Subject: " + subject);
            out.println("Content-Type: " + contenttype);
        //selve mail teksten
            out.println(body);
           
            out.println(".");
           
            System.out.println(reply = in.readLine());
       
                   
   
                       
            } catch (IOException e) {}
        } catch (SecurityException e) {}
     
   
   
Heri er ikke inkluderet authentication og at bruge en printwriter virker kun på windows... I tilfælde af linux brug en Writer og skrive selv linie-slut karakteren:
out.write(13);
out.write(10);
Avatar billede arvad Nybegynder
21. september 2002 - 01:16 #8
Jeg arbejder på det...
Avatar billede arvad Nybegynder
10. oktober 2002 - 15:40 #9
Jeg har ikke nået at kigge på det endnu - Det er blevet nedprioriteret... =)
Avatar billede arvad Nybegynder
01. november 2002 - 14:57 #10
Det her er vist nemmere:

        _supportMailLabel.addMouseListener(new MouseAdapter()
        {
            public void mousePressed(MouseEvent ev)
            {
                try
                {
                    <APPLET>.instance().showURL(new java.net.URL("mailto:" + <SUPPORT_EMAIL> + "?subject=Support"), "_TOP");
                }
                catch(Exception ex) { CentralExceptionHandler.getHandler().handleException(ex); }
            }
        });

    public void showURL(URL url, String target)
    {
        getAppletContext().showDocument(url, target);
    }
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