2008. 8. 12. 15:28
sun.net.smtp.SmtpClient을 이용한 메일 보내기
2008. 8. 12. 15:28 in IT일반/Java
package jp.co.ntl.application.printauth;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintStream;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import sun.net.smtp.SmtpClient;
public class FreeSendMailer extends JFrame
implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextArea message;
private JTextField server;
private JTextField to;
private JTextField from;
private JTextField title;
private JButton btn;
private String serverName = "localhost";
private String fromName = "from@xxx.xx";
private String toName = "to@xxx.xx.xx";
public FreeSendMailer() {
this.setSize(300, 400);
this.setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
p.setLayout(new GridLayout(4, 1));
server = new JTextField(serverName);
from = new JTextField(fromName);
to = new JTextField(toName);
title = new JTextField("Mail Title");
JPanel p1 = new JPanel();
JLabel l1 = new JLabel("SERVER:");
l1.setPreferredSize(new Dimension(80,20));
p1.add(l1);
p1.add(server);
JPanel p2 = new JPanel();
JLabel l2 = new JLabel("FROM:");
l2.setPreferredSize(new Dimension(80,20));
p2.add(l2);
p2.add(from);
JPanel p3 = new JPanel();
JLabel l3 = new JLabel("TO:");
l3.setPreferredSize(new Dimension(80,20));
p3.add(l3);
p3.add(to);
JPanel p4 = new JPanel();
JLabel l4 = new JLabel("TITLE:");
l4.setPreferredSize(new Dimension(80,20));
p4.add(l4);
p4.add(title);
server.setPreferredSize(new Dimension(200,20));
from.setPreferredSize(new Dimension(200,20));
to.setPreferredSize(new Dimension(200,20));
title.setPreferredSize(new Dimension(200,20));
p.add(p1);
p.add(p2);
p.add(p3);
p.add(p4);
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(p, BorderLayout.NORTH);
message = new JTextArea();
message.setLineWrap(true);
JScrollPane scroll = new JScrollPane();
scroll.setVerticalScrollBarPolicy
(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scroll.getViewport().add(message);
getContentPane().add(scroll, BorderLayout.CENTER);
btn = new JButton("send");
btn.addActionListener(this);
getContentPane().add(btn, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new FreeSendMailer().setVisible(true);
}
public void actionPerformed(ActionEvent ev) {
String to1 = to.getText();
String from1 = from.getText();
String server1 = server.getText();
String title1 = title.getText();
String msg = message.getText();
try {
title1 = new String(title1.getBytes("ISO2022JP"));
msg = new String(msg.getBytes("ISO2022JP"));
SmtpClient client = new SmtpClient(server1);
client.from(from1);
client.to(to1);
PrintStream stream = client.startMessage();
stream.println("To:" + to1);
stream.println("Subject:" + title1);
stream.println("Content-Type: text/plain; charset=iso-2022jp");
stream.println(msg);
stream.flush();
stream.close();
JOptionPane.showMessageDialog(this, "success!");
} catch(Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "failed\n"
+ ex.toString());
}
}
}
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintStream;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import sun.net.smtp.SmtpClient;
public class FreeSendMailer extends JFrame
implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextArea message;
private JTextField server;
private JTextField to;
private JTextField from;
private JTextField title;
private JButton btn;
private String serverName = "localhost";
private String fromName = "from@xxx.xx";
private String toName = "to@xxx.xx.xx";
public FreeSendMailer() {
this.setSize(300, 400);
this.setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
p.setLayout(new GridLayout(4, 1));
server = new JTextField(serverName);
from = new JTextField(fromName);
to = new JTextField(toName);
title = new JTextField("Mail Title");
JPanel p1 = new JPanel();
JLabel l1 = new JLabel("SERVER:");
l1.setPreferredSize(new Dimension(80,20));
p1.add(l1);
p1.add(server);
JPanel p2 = new JPanel();
JLabel l2 = new JLabel("FROM:");
l2.setPreferredSize(new Dimension(80,20));
p2.add(l2);
p2.add(from);
JPanel p3 = new JPanel();
JLabel l3 = new JLabel("TO:");
l3.setPreferredSize(new Dimension(80,20));
p3.add(l3);
p3.add(to);
JPanel p4 = new JPanel();
JLabel l4 = new JLabel("TITLE:");
l4.setPreferredSize(new Dimension(80,20));
p4.add(l4);
p4.add(title);
server.setPreferredSize(new Dimension(200,20));
from.setPreferredSize(new Dimension(200,20));
to.setPreferredSize(new Dimension(200,20));
title.setPreferredSize(new Dimension(200,20));
p.add(p1);
p.add(p2);
p.add(p3);
p.add(p4);
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(p, BorderLayout.NORTH);
message = new JTextArea();
message.setLineWrap(true);
JScrollPane scroll = new JScrollPane();
scroll.setVerticalScrollBarPolicy
(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scroll.getViewport().add(message);
getContentPane().add(scroll, BorderLayout.CENTER);
btn = new JButton("send");
btn.addActionListener(this);
getContentPane().add(btn, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new FreeSendMailer().setVisible(true);
}
public void actionPerformed(ActionEvent ev) {
String to1 = to.getText();
String from1 = from.getText();
String server1 = server.getText();
String title1 = title.getText();
String msg = message.getText();
try {
title1 = new String(title1.getBytes("ISO2022JP"));
msg = new String(msg.getBytes("ISO2022JP"));
SmtpClient client = new SmtpClient(server1);
client.from(from1);
client.to(to1);
PrintStream stream = client.startMessage();
stream.println("To:" + to1);
stream.println("Subject:" + title1);
stream.println("Content-Type: text/plain; charset=iso-2022jp");
stream.println(msg);
stream.flush();
stream.close();
JOptionPane.showMessageDialog(this, "success!");
} catch(Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "failed\n"
+ ex.toString());
}
}
}