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();
}
}