Java 发送邮件与接收邮件

public class MyMail {//项目运行需要添加 mail.jar,在CSDN 上就有

 /**
  * 发送邮件
  * smtp.163.com
  * 参数:服务器名称(通过此服务器来发送邮件)、发件人邮箱、发件箱密码、收件人邮箱、邮件主题、邮件内容
  */
    public void sendMail(String host, String from,String password, String to, String subject, String content) throws Exception{
        Properties props = new Properties();
        props.put("mail.smtp.host",host);//163的为 smtp.163.com,yeah的为 smtp.yeah.net
        props.put("mail.smtp.auth", "true");//验证发件人是否合法用户,必须为true
      
        Session session = Session.getDefaultInstance(props);//创建Session
      
        MimeMessage msg = new MimeMessage(session); //创建邮件信息
      
        msg.setFrom(new InternetAddress(from)); //发件人地址,from 后面还可以再添加一个 String 类型的参数,其作用:邮件的发件人不再是地址而是你设定的字符
        msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));//收件人地址
        msg.setSubject(subject);//设置主题
        msg.setText(content);//设置文本内容

        //连接到邮件服务器,并发送邮件
        Transport tran = session.getTransport("smtp");
        tran.connect(from,password);
       
        tran.sendMessage(msg, msg.getAllRecipients());
        tran.close();//关闭连接
    }
   
    /**
  * 接收邮件
  * pop3.163.com
  * 参数:服务器名称、收件人邮箱、密码
  */
    public void receive(String host,String name,String password)throws Exception{
     Properties  props   =   new  Properties();    
  props.put("mail.pop3.host",host);
  
  Session session =Session.getInstance(props,null);//null 代表不需要验证
  Provider  pro =session.getProvider("pop3");
  Store   store = session.getStore(pro);//这两行代码很重要
  //建立连接  
  store.connect(name,password);
  // 打开收件箱
  Folder inbox = store.getDefaultFolder().getFolder("INBOX");
  inbox.open(Folder.READ_ONLY);//以只读方式打开
  // 得到邮箱中的e-mail总数
  int count = inbox.getMessageCount();
  // 将e-mail放在发件箱中,列表显示出来
  for (int i = 1; i <= count; i++) {
   Message message = inbox.getMessage(i);
   System.out.println("邮件主题:" + message.getSubject());
   System.out.println("邮件作者:" + message.getFrom()[0].toString());
   System.out.println("邮件内容:" + message.getContent());
   System.out.println("发送日期:" + message.getSentDate());
   System.out.println();
  }
  // 关闭收件箱和到邮件服务器的连接
  inbox.close(true);
  store.close();
    }
 public static void main(String[] args) throws Exception{
  MyMail mm=new MyMail();
  mm.sendMail("smtp.163.com", "你的163邮箱", "你的登录密码","目标邮箱", "安静的甜蜜", "自由自在享受幸福");
  //mm.receive("pop3.163.com", "你的163邮箱", "你的登录密码");
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值