这两个部分怎么能衔接起来阿, 前半部分是图形, 后半部分是发送邮件的程序,
我想要把在图形界面中的,由键盘输入的邮件地址传给 receiver,
把主题, 传给subject, 把JTextArea中的内容(由键盘输入)发送出去.
哪位大哥能忙下忙, 小弟在此感激不尽!!
===================================
package lesson3;import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;public class nihao {
public static void main(String[] args) {
JFrame frame = new JFrame("My Mail System ");
Container contentPane = frame.getContentPane();
contentPane.setLayout (new FlowLayout());
JPanel panel = new JPanel();
JLabel label = new JLabel("TO: ",JLabel.LEFT);
JTextField text = new JTextField(20);
label.setDisplayedMnemonic(KeyEvent.VK_1);
label.setLabelFor(text);
panel.add(label);
panel.add(text);
JLabel label2 = new JLabel("Subject: ",JLabel.LEFT);
JTextField text2 = new JTextField(20);
panel.add(label2);
panel.add(text2);
contentPane.add(panel);
JTextArea ta = new JTextArea(15, 40);
JScrollPane jsp = new JScrollPane(ta);
ta.setText(" ");
ta.setLineWrap(true);
ta.setWrapStyleWord(true); frame.getContentPane().add(jsp,FlowLayout.CENTER);
JButton button1 = new JButton("OK");
button1.setToolTipText("send it");
contentPane.add(button1, FlowLayout.RIGHT);
frame.setSize(600,400);
//frame.pack();
frame.setVisible(true);
frame.setLocation(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
}class SMTPtest {
//以下三项请在使用时改成真实的信箱地址
//并且注意,SMTPServer和receiver必须是同一个服务器
private static String sender = "[email protected]";
private static String receiver = "输入邮件地址";
private static String SMTPServer = "邮件服务器";
public static void main(String[] args) {
int SMTPPort = 25;
Socket client = null;
try {
// 向SMTP服务程序建立一个套接字连接。
client = new Socket(SMTPtest.SMTPServer, SMTPPort);
// 创建一个BufferedReader对象,以便从套接字读取输出。
InputStream is = client.getInputStream();
BufferedReader sockin = new BufferedReader(new InputStreamReader(is));
// 创建一个PrintWriter对象,以便向套接字写入内容。
OutputStream os = client.getOutputStream();
PrintWriter sockout = new PrintWriter(os, true);
// 显示同SMTP服务程序的握手过程。
System.out.println("S:" + sockin.readLine());
sockout.println("helo");
System.out.println("S:" + sockin.readLine());
sockout.println("mail from: " + "<" + SMTPtest.sender + ">");
System.out.println("S:" + sockin.readLine());
sockout.println("rcpt to: " + "<" + SMTPtest.receiver + ">");
System.out.println("S:" + sockin.readLine());
sockout.println("data");
//发送邮件标题
sockout.println("subject: Hello");
//发送邮件内容
sockout.println("Hi!");
sockout.println("How are you?");
//此处的.为特殊标记,表示邮件结束
sockout.println(".");
sockout.println("rset");
sockout.println("quit");
} catch (IOException e) {
System.out.println(e.toString());
} finally {
try {
if (client != null) {
client.close();
}
} catch (IOException e) {}
}
}
}
我想要把在图形界面中的,由键盘输入的邮件地址传给 receiver,
把主题, 传给subject, 把JTextArea中的内容(由键盘输入)发送出去.
哪位大哥能忙下忙, 小弟在此感激不尽!!
===================================
package lesson3;import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;public class nihao {
public static void main(String[] args) {
JFrame frame = new JFrame("My Mail System ");
Container contentPane = frame.getContentPane();
contentPane.setLayout (new FlowLayout());
JPanel panel = new JPanel();
JLabel label = new JLabel("TO: ",JLabel.LEFT);
JTextField text = new JTextField(20);
label.setDisplayedMnemonic(KeyEvent.VK_1);
label.setLabelFor(text);
panel.add(label);
panel.add(text);
JLabel label2 = new JLabel("Subject: ",JLabel.LEFT);
JTextField text2 = new JTextField(20);
panel.add(label2);
panel.add(text2);
contentPane.add(panel);
JTextArea ta = new JTextArea(15, 40);
JScrollPane jsp = new JScrollPane(ta);
ta.setText(" ");
ta.setLineWrap(true);
ta.setWrapStyleWord(true); frame.getContentPane().add(jsp,FlowLayout.CENTER);
JButton button1 = new JButton("OK");
button1.setToolTipText("send it");
contentPane.add(button1, FlowLayout.RIGHT);
frame.setSize(600,400);
//frame.pack();
frame.setVisible(true);
frame.setLocation(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
}class SMTPtest {
//以下三项请在使用时改成真实的信箱地址
//并且注意,SMTPServer和receiver必须是同一个服务器
private static String sender = "[email protected]";
private static String receiver = "输入邮件地址";
private static String SMTPServer = "邮件服务器";
public static void main(String[] args) {
int SMTPPort = 25;
Socket client = null;
try {
// 向SMTP服务程序建立一个套接字连接。
client = new Socket(SMTPtest.SMTPServer, SMTPPort);
// 创建一个BufferedReader对象,以便从套接字读取输出。
InputStream is = client.getInputStream();
BufferedReader sockin = new BufferedReader(new InputStreamReader(is));
// 创建一个PrintWriter对象,以便向套接字写入内容。
OutputStream os = client.getOutputStream();
PrintWriter sockout = new PrintWriter(os, true);
// 显示同SMTP服务程序的握手过程。
System.out.println("S:" + sockin.readLine());
sockout.println("helo");
System.out.println("S:" + sockin.readLine());
sockout.println("mail from: " + "<" + SMTPtest.sender + ">");
System.out.println("S:" + sockin.readLine());
sockout.println("rcpt to: " + "<" + SMTPtest.receiver + ">");
System.out.println("S:" + sockin.readLine());
sockout.println("data");
//发送邮件标题
sockout.println("subject: Hello");
//发送邮件内容
sockout.println("Hi!");
sockout.println("How are you?");
//此处的.为特殊标记,表示邮件结束
sockout.println(".");
sockout.println("rset");
sockout.println("quit");
} catch (IOException e) {
System.out.println(e.toString());
} finally {
try {
if (client != null) {
client.close();
}
} catch (IOException e) {}
}
}
}
解决方案 »
- smslib 通过短信猫同时收发短信的时候报错。请高手请教。。。。
- 请教个数据库开发问题80分
- 我的代码有很多个if语句,怎么写让它简短?
- 什么情况能用到管道通信PipedInputStream和PipedOutputStream.
- 使用eclipse开发遇到的问题,在线等.
- 有关于jfreechart的疑问
- 初学者,好混乱,请教有开发经历的java程序员
- 请帮帮忙,到哪里可以去下载java编程思想(第二版)(书一定要可靠哦!!!)
- 如何在textField中判断出输入的是个整数?
- Java实现打印一下图形,支持任意大小的奇数行(可接收命令行参数)。
- 怎么才能引用导入jar文件中默认包的类?
- 如何显示view ——eclipse rcp
会方便很多
package huangwei;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;public class nihao {
public static void main(String[] args) {
JFrame frame = new JFrame("My Mail System ");
Container contentPane = frame.getContentPane(); contentPane.setLayout (new FlowLayout());
JPanel panel = new JPanel();
JLabel label = new JLabel("TO: ",JLabel.LEFT);
JTextField text = new JTextField("",20);
label.setDisplayedMnemonic(KeyEvent.VK_1);
label.setLabelFor(text);
panel.add(label);
panel.add(text); JLabel label2 = new JLabel("Subject: ",JLabel.LEFT);
JTextField text2 = new JTextField(20);
panel.add(label2);
panel.add(text2);
contentPane.add(panel); JTextArea ta = new JTextArea(15, 40);
JScrollPane jsp = new JScrollPane(ta);
ta.setText(" 2 ");
ta.setLineWrap(true);
ta.setWrapStyleWord(true); frame.getContentPane().add(jsp,FlowLayout.CENTER); JButton button1 = new JButton("OK");
button1.setToolTipText("send it");
button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
SMTPtest smt = new SMTPtest();
// smt.sender = 对应JTextField取值;
smt.dopost();
}
});
contentPane.add(button1, FlowLayout.RIGHT); frame.setSize(600,400);
//frame.pack();
frame.setVisible(true);
frame.setLocation(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
}class SMTPtest {
//以下三项请在使用时改成真实的信箱地址
//并且注意,SMTPServer和receiver必须是同一个服务器
public static String sender = "[email protected]";
public static String receiver = "输入邮件地址";
public static String SMTPServer = "邮件服务器";
public static void dopost() {
int SMTPPort = 25;
Socket client = null;
try {
// 向SMTP服务程序建立一个套接字连接。
client = new Socket(SMTPtest.SMTPServer, SMTPPort);
// 创建一个BufferedReader对象,以便从套接字读取输出。
InputStream is = client.getInputStream();
BufferedReader sockin = new BufferedReader(new InputStreamReader(is));
// 创建一个PrintWriter对象,以便向套接字写入内容。
OutputStream os = client.getOutputStream();
PrintWriter sockout = new PrintWriter(os, true);
// 显示同SMTP服务程序的握手过程。
System.out.println("S:" + sockin.readLine());
sockout.println("helo");
System.out.println("S:" + sockin.readLine());
sockout.println("mail from: " + "<" + SMTPtest.sender + ">");
System.out.println("S:" + sockin.readLine());
sockout.println("rcpt to: " + "<" + SMTPtest.receiver + ">");
System.out.println("S:" + sockin.readLine());
sockout.println("data");
//发送邮件标题
sockout.println("subject: Hello");
//发送邮件内容
sockout.println("Hi!");
sockout.println("How are you?");
//此处的.为特殊标记,表示邮件结束
sockout.println(".");
sockout.println("rset");
sockout.println("quit");
} catch (IOException e) {
System.out.println(e.toString());
} finally {
try {
if (client != null) {
client.close();
}
} catch (IOException e) {}
}
}
}
换成Swing版的,也很容易,就是提供按钮
这些东西都屏蔽掉了。 注意发送邮件的中文编码问题。
我想要的是 public static String receiver = "输入邮件地址";
这个邮件地址不在程序中直接输入, 而是在运行时的图形界面中输入
还有邮件主题也是在运行时输入。没人能帮帮我吗???