用javamail发邮件(含附件),用jBuilder3实现

80酷酷网    80kuku.com

  发邮件//Title:        Your Product Name
//Version:      
//Copyright:    Copyright (c) 1999
//Author:       Your Name
//Company:      Your Company
//Description:  Your description

package Mail;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


public class SendMail extends Frame {
  Label label1 = new Label();
  TextField textField1 = new TextField();
  Label label2 = new Label();
  TextField textField2 = new TextField();
  Label label3 = new Label();
  TextArea textArea1 = new TextArea();
  Label label4 = new Label();
  TextField textField3 = new TextField();
  Button button1 = new Button();
  Button button2 = new Button();

  public SendMail() {
   enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try  {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
    protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if(e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
  public static void main(String[] args) {
    SendMail sendMail1 = new SendMail();
    sendMail1.setSize (400,400);
    sendMail1.show (true);
  }

  private void jbInit() throws Exception {
    label1.setBounds(new Rectangle(41, 38, 45, 23));
    label1.setText("收信人");
    this.setLayout(null);
    this.setSize (400,400);
    textField1.setBounds(new Rectangle(110, 36, 174, 23));
    label2.setBounds(new Rectangle(42, 75, 38, 23));
    label2.setText("主题");
    textField2.setBounds(new Rectangle(110, 76, 173, 23));
    label3.setBounds(new Rectangle(43, 148, 38, 23));
    label3.setText("内容");
    textArea1.setBounds(new Rectangle(110, 155, 256, 170));
    label4.setBounds(new Rectangle(45, 111, 44, 23));
    label4.setText("附件");
    textField3.setBounds(new Rectangle(110, 115, 173, 23));
    button1.setBounds(new Rectangle(70, 348, 88, 24));
    button1.setLabel("发送");
    button1.addActionListener(new java.awt.event.ActionListener() {

      public void actionPerformed(ActionEvent e) {
        button1_actionPerformed(e);
      }
    });
    button2.setBounds(new Rectangle(244, 348, 88, 24));
    button2.setLabel("重填");
    button2.addActionListener(new java.awt.event.ActionListener() {

      public void actionPerformed(ActionEvent e) {
        button2_actionPerformed(e);
      }
    });
    this.add(label1, null);
    this.add(textField1, null);
    this.add(textField2, null);
    this.add(textField3, null);
    this.add(textArea1, null);
    this.add(label2, null);
    this.add(label4, null);
    this.add(label3, null);
    this.add(button2, null);
    this.add(button1, null);
  }

  void button2_actionPerformed(ActionEvent e) {
    textField1.setText ("");
    textField2.setText ("");
    textField3.setText ("");
    textArea1.setText ("");
  }

  void button1_actionPerformed(ActionEvent e) {
    String to,from,subject,message,attachment;
    from="toonemail.com";
    to=textField1.getText ();
    if(to.trim ().equals ("")){
      JOptionPane.showMessageDialog(this, "收信人不能为空!", "错误", JOptionPane.ERROR_MESSAGE);
      return;
      }
    message=textArea1.getText();
    attachment=textField3.getText ();
    if(message.trim ().equals ("")&&attachment.trim ().equals ("")){
      JOptionPane.showMessageDialog(this, "内容和附件不能都为空!", "错误", JOptionPane.ERROR_MESSAGE);
      return;
    }
    if(to.indexOf ("")==-1)  {
      JOptionPane.showMessageDialog(this, "无效的收信人地址!", "错误", JOptionPane.ERROR_MESSAGE);
      return;
     }
     subject=textField2.getText ().trim ();
     if(subject.equals (""))
       if(JOptionPane.showConfirmDialog(this,"你不需要设置主题吗?","系统提示",0)!=0)
            return;
   File file=new File(attachment);
    if(!attachment.equals ("")){
        if(!file.isFile ()){
        JOptionPane.showMessageDialog(this, "无效的附件名!", "错误", JOptionPane.ERROR_MESSAGE);
        return;
      }
      }
    //以上程序是检验输入的有效性

  // create some properties and get the default Session
    Properties props = System.getProperties();
    props.put("mail.smtp.host", "192.168.0.1");
    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(false);

  try{
   // create a message
        MimeMessage msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress(from));
        InternetAddress[] address = {new InternetAddress(to)};
        msg.setRecipients(Message.RecipientType.TO, address);
        msg.setSubject(subject);
      msg.addHeader ("toone","fangjianhua");
      if(attachment.equals ("")){
         System.out.println ("This is plain mail");
          msg.setText (message);
      }
      else {
        System.out.println ("this is a multipart mail");
       // create and fill the first message part
          MimeBodyPart mbp1 = new MimeBodyPart();
          mbp1.setText(message);

        // create the second message part
          MimeBodyPart mbp2 = new MimeBodyPart();

     // attach the file to the message
        FileDataSource fds = new FileDataSource(file);
       mbp2.setDataHandler(new DataHandler(fds));
       mbp2.setFileName(fds.getName());

        // create the Multipart and its parts to it
        Multipart mp = new MimeMultipart();
        mp.addBodyPart(mbp1);
        mp.addBodyPart(mbp2);

        // add the Multipart to the message
        msg.setContent(mp);
      }
      msg.setSentDate(new Date());
        // send the message
      //for(int i=0;i<10;i++)
         Transport.send(msg);
      //System.out.println ("Send a mail success");
      JOptionPane.showMessageDialog(this, "邮件发送成功", "系统提示",JOptionPane.INFORMATION_MESSAGE );
     }
     catch(Exception ex){
       JOptionPane.showMessageDialog(this, "发送邮件失败", "错误", JOptionPane.ERROR_MESSAGE);
     }

  }
}



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: