📄 sendmail.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMail extends JFrame implements ActionListener {
private String host; //邮件服务器
private String username; //用户名
private String password; //密码
private String from; //发送者地址
private String to; //接收者地址
private String subject; //邮件主题
private String body; //邮件正文
private JLabel labels[] = new JLabel[6];
private JTextField textFields[] = new JTextField[6];
private JTextArea content;
private JButton send,cancel;
private JPanel buttonPanel, messagePanel, msgPanel, msgPanel2;
private static final String labelNames[] = {"Host Address:",
"User Name:", "PassWord:", "From:", "To:", "Subject:"};
public SendMail()
{
super("Send Mail");
//获取内容面板
Container container = getContentPane();
//创建标签,文本域
for(int i = 0; i < labelNames.length; i++){
labels[i] = new JLabel(labelNames[i], JLabel.RIGHT);
labels[i].setOpaque(true);
labels[i].setBackground(new Color(200, 255, 255));
textFields[i] = new JTextField(20);
}
textFields[2] = new JPasswordField(20);
content = new JTextArea(30, 30);
content.setFont(new Font("Serif", Font.PLAIN, 14));
content.setLineWrap(true);
content.setWrapStyleWord(true);
//创建按钮,注册监听器
send= new JButton("Send");
cancel = new JButton("Cancel");
send.addActionListener(this);
cancel.addActionListener(this);
//创建面板
msgPanel = new JPanel(new GridLayout(6,1));
msgPanel2 = new JPanel(new GridLayout(6,1));
msgPanel.setBorder(BorderFactory.createMatteBorder(2,2,2,2,new Color(200,255,255)));
msgPanel2.setBorder(BorderFactory.createMatteBorder(2,2,2,2,new Color(200,255,255)));
for(int i = 0; i < labels.length; i++)
{
msgPanel.add(labels[i]);
msgPanel2.add(textFields[i]);
}
messagePanel = new JPanel(new BorderLayout());
messagePanel.setBorder(BorderFactory.createMatteBorder(2,2,2,2,new Color(200,255,255)));
buttonPanel = new JPanel(new GridLayout(1,2,5,5));
//往面板里添加组件
buttonPanel.add(send);
buttonPanel.add(cancel);
messagePanel.add(msgPanel, BorderLayout.WEST);
messagePanel.add(msgPanel2, BorderLayout.CENTER);
container.add(messagePanel, BorderLayout.NORTH);
container.add(new JScrollPane(content), BorderLayout.CENTER);
container.add(buttonPanel, BorderLayout.SOUTH);
}
public static void main(String[] args)
{
SendMail demo = new SendMail();
demo.setSize(400,400);
demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
demo.show();
}
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == cancel)
{
body = "";
content.setText("");
}
else if(event.getSource() == send)
{
host = textFields[0].getText().trim();
username = textFields[1].getText().trim();
password = new String(((JPasswordField)textFields[2]).getPassword());
from = textFields[3].getText().trim();
to = textFields[4].getText().trim();
subject = textFields[5].getText().trim();
body = content.getText().trim();
send();
}
}
//发送邮件
private void send()
{
Properties props;
Session sendMailSession;
Message newMessage;
Transport transport;
try
{
props = new Properties();
sendMailSession = Session.getInstance(props, null);
props.put("mail.smtp.host", host);
//创建邮件
newMessage = new MimeMessage(sendMailSession);
//设置邮件
newMessage.setFrom(new InternetAddress(from));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress (to));
newMessage.setSubject(subject);
newMessage.setSentDate(new Date());
newMessage.setText(body);
//发送邮件
transport = sendMailSession.getTransport("smtp");
transport.connect(host, username, password);
transport.send(newMessage);
}
catch(MessagingException me)
{
me.printStackTrace(System.out);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -