L
Louis2
Gast
Hallo,
also bisher habe ich ein GUI als Applet (Swing) programmiert (From/To/Subject/SMTP Server) Felder. Das Programm holt sich den Absender und SMTP Server aus einer .ini Datei, fügt sich in den Textfelder ein und sperrt diese 2 Felder mit .setEditable(false).
So nun was ich noch machen will:
1. Beim drücken von einem Button "Send Message" sollen die mails an allen Empfängern abgeschickt werden, also automatisch. Also sozusagen alle Empfänger durcharbeiten, die Liste durchgehen.
2. Falls es möglich ist, eine Art Statusbalken, wo angezeigt wird, wieviel mails bisher verschickt wurden.
So nun mein Code was bisher auch o.p läuft:
Habt Ihr Ideen, Vorschläge wie ich das ganze schaffen kann, was ich mir vorgenommen habe?
also bisher habe ich ein GUI als Applet (Swing) programmiert (From/To/Subject/SMTP Server) Felder. Das Programm holt sich den Absender und SMTP Server aus einer .ini Datei, fügt sich in den Textfelder ein und sperrt diese 2 Felder mit .setEditable(false).
So nun was ich noch machen will:
1. Beim drücken von einem Button "Send Message" sollen die mails an allen Empfängern abgeschickt werden, also automatisch. Also sozusagen alle Empfänger durcharbeiten, die Liste durchgehen.
2. Falls es möglich ist, eine Art Statusbalken, wo angezeigt wird, wieviel mails bisher verschickt wurden.
So nun mein Code was bisher auch o.p läuft:
Code:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
public class SammelMailGUI_Swing extends JFrame
{
private JButton sendButton = new JButton("Send Message");
private JLabel fromLabel = new JLabel("From: ");
private JLabel toLabel = new JLabel("To: ");
private JLabel hostLabel = new JLabel("SMTP Server: ");
private JLabel subjectLabel = new JLabel("Subject: ");
private JTextField fromField = new JTextField(40);
private JTextField toField = new JTextField(40);
private JTextField hostField = new JTextField(40);
private JTextField subjectField = new JTextField(40);
private JTextArea message = new JTextArea(40,40);
private JScrollPane jsp = new JScrollPane(message);
String INIEmailFrom;
String INIHost;
BufferedReader b;
String line;
String Mailline;
String[] tmp = null;
int counter=0;
public SammelMailGUI_Swing()
{
super("SammelMailGUI_Swing");
try
{
File Data = new File("C:/Data.ini");
b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));
while ((line = b.readLine()) != null)
{
tmp = line.split(":");
if (counter==0)
INIEmailFrom=tmp[1];
else if (counter==1)
INIHost=tmp[1];
counter++;
}
b.close();
}
catch (IOException e)
{
System.out.println("Error during data reading");
}
try
{
File MailData = new File("C:/MailSend.ini");
b = new BufferedReader(new InputStreamReader(new FileInputStream(MailData)));
while ((Mailline = b.readLine()) != null)
{
message.append(Mailline+ " \n");
}
b.close();
}
catch (IOException e)
{
System.out.println("Error during data reading");
}
Container contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout());
JPanel labels = new JPanel();
labels.setLayout(new GridLayout(4,1));
labels.add(hostLabel);
JPanel fields = new JPanel();
fields.setLayout(new GridLayout(4,1));
hostField.setText(INIHost);
hostField.setEditable(false);
fields.add(hostField);
labels.add(toLabel);
fields.add(toField);
fromField.setText(INIEmailFrom);
fromField.setEditable(false);
labels.add(fromLabel);
fields.add(fromField);
labels.add(subjectLabel);
fields.add(subjectField);
Box north = Box.createHorizontalBox();
north.add(labels);
north.add(fields);
message.setEditable(false);
contentPane.add(north, BorderLayout.NORTH);
message.setFont(new Font("Monospaced", Font.PLAIN,12));
contentPane.add(jsp,BorderLayout.CENTER);
JPanel south = new JPanel();
south.setLayout(new FlowLayout(FlowLayout.CENTER));
south.add(sendButton);
sendButton.addActionListener(new SendAction());
contentPane.add(south, BorderLayout.SOUTH);
this.pack();
}
class SendAction implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
try
{
Properties props=new Properties();
props.put("mail.host", hostField.getText());
Session mailConnection=Session.getInstance(props,null);
final Message msg=new MimeMessage(mailConnection);
Address to=new InternetAddress(toField.getText());
Address from=new InternetAddress(fromField.getText());
msg.setContent(message.getText(), "text/plain");
msg.setFrom(from);
msg.setRecipient(Message.RecipientType.TO, to);
msg.setSubject(subjectField.getText());
Runnable r = new Runnable()
{
public void run()
{
try
{
Transport.send(msg);
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
Thread t = new Thread(r);
t.start();
message.setText("");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
SammelMailGUI_Swing client = new SammelMailGUI_Swing();
client.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
client.show();
}
}
Habt Ihr Ideen, Vorschläge wie ich das ganze schaffen kann, was ich mir vorgenommen habe?