一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

java 邮件发送与带附件的实现方法

时间:2022-06-29 03:08:01 编辑:袖梨 来源:一聚教程网

java 邮件发送与带附件的实现方法
java邮件发送也一样,可以实现传入的参数有port地址、密码、姓名、谁发、发给谁、主题、正文内容、smtp地址、发送类型
等功能。
方法一

简单的JavaMail邮件发送
dev.firnow.com    时间 : 2009-04-05  作者:匿名   编辑:sky 点击:  683 [ 评论 ]
-
-

 

import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;

 

/**
 * @author caoyx
 *
 */
public class MailTest {

 /**
  * 构造方法
  */
 public MailTest() {

 }

/**

*

*javamail发送测试

*/

  public void SendEmailTest() {


  Properties props教程 = new Properties();
  props.put("mail.smtp.host", "smtp.163.com");
 
  // 允许smtp校验
  props.put("mail.smtp.auth", "true");
  Session sendMailSession = Session.getInstance(props, null);

  try {
   Transport transport = sendMailSession.getTransport("smtp");
  
   //                             邮箱服务器            登陆邮箱用户名     登陆密码
   transport.connect("smtp.163.com",   "xxx",                 "xxx");
   Message newMessage = new MimeMessage(sendMailSession);

   // 设置mail主题
   String mail_subject = "邮件发送测试(mail标题)";
   newMessage.setSubject(mail_subject);

   // 设置发信人地址
   String strFrom = "[email protected]";
   strFrom = new String(strFrom.getBytes(), "8859_1");
   newMessage.setFrom(new InternetAddress(strFrom));
   Address addressFrom[] = {
     new InternetAddress("[email protected]"),
     new InternetAddress("[email protected] dfgdom") };
  
   // 改变发件人地址
   newMessage.addFrom(addressFrom);
  
   // 设置收件人地址
   Address addressTo[] = { new InternetAddress("[email protected]") };
   newMessage.setRecipients(Message.RecipientType.TO, addressTo);

   // 设置mail正文
   newMessage.setSentDate(new java.util.Date());
  
   String mail_text = "邮件发送测试.来自: "+strFrom;
   newMessage.setText(mail_text);

   // 保存发送信息
   newMessage.saveChanges();
  
   // 发送邮件
   transport.sendMessage(newMessage, newMessage
     .getRecipients(Message.RecipientType.TO));

   transport.close();

 

   System.out.println("OK");
  } catch (Exception e) {
   System.out.println(e);
  }

 }

 public static void main(String args[]) throws Exception {
  MailTest SEmail = new MailTest();
  SEmail.SendEmailTest();
 }

}

 

测试:

在eclipse中创建一个Java Application

引入mail.jar    activation.jar

实例二

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Part;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;

public class MainClass {

  public static void main(String[] args) throws Exception {
    URLName server = new URLName("protocol://username@host/foldername");

    Session session = Session.getDefaultInstance(new Properties(), new MailAuthenticator());

    Folder folder = session.getFolder(server);
    if (folder == null) {
      System.out.println("Folder " + server.getFile() + " not found.");
      System.exit(1);
    }
    folder.open(Folder.READ_ONLY);

    Message[] messages = folder.getMessages();
    for (int i = 0; i < messages.length; i++) {
      System.out.println(messages[i].getSize() + " bytes long.");
      System.out.println(messages[i].getLineCount() + " lines.");
      String disposition = messages[i].getDisposition();
      if (disposition == null){
        ; // do nothing
      }else if (disposition.equals(Part.INLINE)) {
        System.out.println("This part should be displayed inline");
      } else if (disposition.equals(Part.ATTACHMENT)) {
        System.out.println("This part is an attachment");
        String fileName = messages[i].getFileName();
        System.out.println("The file name of this attachment is " + fileName);
      }
      String description = messages[i].getDescription();
      if (description != null) {
        System.out.println("The description of this message is " + description);
      }
    }
    folder.close(false);
  }
}

class MailAuthenticator extends Authenticator {

  public MailAuthenticator() {
  }

  public PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication("username", "password");
  }
}

如何使用FileDataSource通过邮件发送一个文件

 

import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class sendfile {

    public static void main(String[] args) {
  if (args.length != 5) {
      System.out.println("usage: java sendfile true|false");
      System.exit(1);
  }

  String to = args[0];
  String from = args[1];
  String host = args[2];
  String filename = args[3];
  boolean debug = Boolean.valueOf(args[4]).booleanValue();
  String msgText1 = "Sending a file.n";
  String subject = "Sending a file";
 
  // create some properties and get the default Session
  Properties props = System.getProperties();
  props.put("mail.smtp.host", host);
 
  Session session = Session.getInstance(props, null);
  session.setDebug(debug);
 
  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);

      // create and fill the first message part
      MimeBodyPart mbp1 = new MimeBodyPart();
      mbp1.setText(msgText1);

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

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

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

      // add the Multipart to the message
      msg.setContent(mp);

      // set the Date: header
      msg.setSentDate(new Date());
     
      // send the message
      Transport.send(msg);
     
  } catch (MessagingException mex) {
      mex.printStackTrace();
      Exception ex = null;
      if ((ex = mex.getNextException()) != null) {
    ex.printStackTrace();
      }
  }
    }
}

热门栏目