| 查看: 136 | 回复: 1 | |||
| 当前主题已经存档。 | |||
[交流]
【求助】java邮件发送软件开发的问题
|
|||
|
最近在学习JAVA,在学习邮件开发时遇到了问题.运行程序后,出现N个邮件发送界面,且设置完成后,发送失败.小弟找不到原因,望哪位高手帮忙解答。小弟奉上所有金币。以下为所有程序: 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 UseSMTPMail extends JFrame { JButton sendButton=new JButton("发信" ;JLabel hostLabel=new JLabel("SMTP服务器" ;JLabel usernameLabel=new JLabel("用户名:" ;JLabel passwordLabel=new JLabel("密码:" ;JLabel fromLabel=new JLabel("发件人:" ;JLabel toLabel=new JLabel("收件人:" ;JLabel subjectLabel=new JLabel("主题:" ;JTextField usernameField=new JTextField(40); JPasswordField passwordField=new JPasswordField(40); JTextField hostField=new JTextField(40); JTextField fromField=new JTextField(40); JTextField toField=new JTextField(40); JTextField subjectField=new JTextField(40); JTextArea message=new JTextArea(10,10); JScrollPane jsp=new JScrollPane(message); public UseSMTPMail(){ Container contentPane=this.getContentPane(); JPanel labels=new JPanel(new GridLayout(6,1)); JPanel fields=new JPanel(new GridLayout(6,1)); labels.add(hostLabel);fields.add(hostField); labels.add(usernameLabel);fields.add(usernameField); labels.add(passwordLabel);fields.add(passwordField); labels.add(toLabel);fields.add(toField); labels.add(fromLabel);fields.add(toField); labels.add(subjectLabel);fields.add(subjectField); Box north=Box.createHorizontalBox(); north.add(labels);north.add(fields); contentPane.add(north,"North" ;contentPane.add(jsp,"Center" ;JPanel south=new JPanel(); south.add(sendButton); sendButton.addActionListener(new SendMail()); contentPane.add(south,"South" ;setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("发送电子邮件" ;setSize(400,400); setVisible(true); } class SendMail implements ActionListener { public void actionPerformed(ActionEvent evt){ try{ Properties props=new Properties(); props.put("mail.smtp.auth","true" ;Session session=Session.getDefaultInstance(props,new Authenticator(){ public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(usernameField.getText(), passwordField.getText()); } }); final Message msg=new MimeMessage(session); Address to=new InternetAddress(toField.getText()); Address from=new InternetAddress(fromField.getText()); msg.setFrom(from); msg.setRecipient(Message.RecipientType.TO,to); msg.setSentDate(new Date()); msg.setSubject(transferChinese(subjectField.getText())); msg.setContent(message.getText(),"GBK" ;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 String transferChinese(String strText){ try{ strText=MimeUtility.encodeText(new String(strText.getBytes(),"GB2312" ,"GB2312","B" ;}catch(Exception e){e.printStackTrace();} return strText; } public static void main(String[] args){ Font font=new Font("JFrame",Font.PLAIN,14); Enumeration keys=UIManager.getLookAndFeelDefaults().keys(); while(keys.hasMoreElements()){ Object key=keys.nextElement(); if(UIManager.get(key)instanceof Font)UIManager.put(key,font); UseSMTPMail smail=new UseSMTPMail(); } } } 召唤高手,高手快来啊~~~~~ |
» 猜你喜欢
求助:我三月中下旬出站,青基依托单位怎么办?
已经有9人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
磺酰氟产物,毕不了业了!
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
不自信的我
已经有5人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
2楼2009-12-08 19:11:40









;
回复此楼