`
guohf
  • 浏览: 417363 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaMail发邮件

阅读更多
package com.email.send;

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

/**//**
 * @author Peter
 */
public class SenderWithSMTPVer
{
 String host="";
 String user="";
 String password="";

 public void setHost(String host)
 {
  this.host=host;
 }

 public void setAccount(String user,String password)
 {
  this.user=user;
  this.password=password;
 }

 public void send(String from,String to,String subject,String content)
 {
  Properties props = new Properties();
  props.put("mail.smtp.host", host);//指定SMTP服务器
  props.put("mail.smtp.auth", "true");//指定是否需要SMTP验证
  try
  {
   Session mailSession = Session.getDefaultInstance(props);

   mailSession.setDebug(true);//是否在控制台显示debug信息

   Message message=new MimeMessage(mailSession);
   message.setFrom(new InternetAddress(from));//发件人
   message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));//收件人

   message.setSubject(subject);//邮件主题
   message.setText(content);//邮件内容
   message.saveChanges();

   Transport transport = mailSession.getTransport("smtp");
   transport.connect(host, user, password);
   transport.sendMessage(message, message.getAllRecipients());
   transport.close();
  }catch(Exception e)
  {
   System.out.println(e);
  }

 }

 public static void main(String args[])
 {
  SenderWithSMTPVer sm=new SenderWithSMTPVer();

  sm.setHost("smtp.sina.com");//指定要使用的邮件服务器
  sm.setAccount("","");//指定帐号和密码

  /**//*
   * @param String 发件人的地址
   * @param String 收件人地址
   * @param String 邮件标题
   * @param String 邮件正文
   */
  sm.send("","","测试发送","新邮件");
 }

}



package com.email.send;

import java.net.*;
import java.io.*;

public class Service {
 public static void main(String args[])
 {
  String ip1, ip2;
  try
  {
   InetAddress in = InetAddress.getLocalHost();
   InetAddress[] all = InetAddress.getAllByName(in.getHostName());
   ip2 = ReadFile();
   //通过本机主机名,遍历多个ip   
   for (int i = 0; i < all.length; i++)
   {
    String tmp=null;
    tmp=ip1=all[i].getHostAddress().toString();
    System.out.println("IP =  " +tmp);//输出计算机所有的ip地址
    if (isInnerIP(ipToLong(tmp)) == -1)//检查是不是外网ip,如果是就保存文件
    {
     if(!ip2.equals(ip1)){
     //发送邮件
     SenderWithSMTPVer sm=new SenderWithSMTPVer();

     sm.setHost("smtp.sina.com");//指定要使用的邮件服务器
     sm.setAccount("taingong2007","taingong2007");//指定帐号和密码

     
      /* @param String 发件人的地址
      * @param String 收件人地址
      * @param String 邮件标题
      * @param String 邮件正文
      */
      
     sm.send("taingong2007@sina.com","taingong2008@sina.com",ip1,"");
     }
     //     将新的ip写入.txt文件中
     WriteFile(ip1);//将ip地址写入文件
     System.out.println("IP保存在同目录IP.txt文件中");
     System.out.println("同目录IP.txt文件中的IP是:" + ReadFile());
    }
   }
  }
  catch (UnknownHostException e)
  {
   System.out.println(e.getMessage());
  }
 } 

    public static int isInnerIP(long a_ip)//检查ip地址是否是内网ip
 {
  int bValid = -1;
  if ((a_ip >> 24 == 0xa) || (a_ip >> 16 == 0xc0a8) || (a_ip >> 22 == 0x2b0))
  {
   bValid = 0;
  }
  return bValid;
 }
 //将127.0.0.1 形式的IP地址转换成10进制整数,这里没有进行任何错误处理
 public static long ipToLong(String strIP)
 {
  long[] ip = new long[4];
  //先找到IP地址字符串中.的位置
  int position1 = strIP.indexOf(".");
  int position2 = strIP.indexOf(".", position1 + 1);
  int position3 = strIP.indexOf(".", position2 + 1);
  //将每个.之间的字符串转换成整型
  ip[0] = Long.parseLong(strIP.substring(0, position1));
  ip[1] = Long.parseLong(strIP.substring(position1 + 1, position2));
  ip[2] = Long.parseLong(strIP.substring(position2 + 1, position3));
  ip[3] = Long.parseLong(strIP.substring(position3 + 1));
  return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
 }

  //写文件  
 public static void WriteFile(String str)
 {
  String filename = "IP.txt";
  File write = new File(filename);
  BufferedWriter bw;
  if (write.exists())
  {
   write.delete();
  }
  else
  //如果文件不存,则建立   
  {
   try
   {
   write.createNewFile();
   }
   catch (IOException e)
   {
    System.out.println(e.getMessage());
   }
  }
  
  try
  {
    bw = new BufferedWriter(new FileWriter(write));
    bw.write(str);
    bw.close();
  }
  catch (IOException e)
  {
   System.out.println(e.getMessage());
  }

 }
  //读文件 
 public static String ReadFile()
 {
  String filename = "IP.txt";
  File read = new File(filename);
  BufferedReader br;
  String temp = null;
  if (read.exists())
  {
   
   try
   {
    br = new BufferedReader(new FileReader(read));
    temp = br.readLine();
    br.close();
    System.out.println(temp);
   }
   catch (IOException e)
   {
    System.out.println(e.getMessage());
   }   
  }
  else 
      {temp = "";}
  return temp;
 } 

}

 

分享到:
评论

相关推荐

    使用JAVAMail代发邮件

    使用 JavaMail 代发邮件 使用 JavaMail 库可以轻松地在 Java 应用程序中发送电子邮件。JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件...

    javaMail 发邮件

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中发送和接收电子邮件。它提供了丰富的API,使得开发者可以方便地处理SMTP、POP3和IMAP等邮件协议。在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件...

    JavaMail发邮件原代码例子

    压缩包中的文件名“JavaMail发邮件原代码例子”可能包含的就是一个完整的Java类,里面包含了上述的代码实现,你可以直接运行这个示例来发送邮件。在实际应用中,可能还需要处理附件、HTML格式的邮件内容、多收件人等...

    用JAVAMAIL发邮件(含附件),.TXT

    用JAVAMAIL发邮件(含附件),. TXT用JAVAMAIL发邮件(含附件),.TXT

    Apusic上用JavaMail发邮件

    总的来说,"Apusic上用JavaMail发邮件"涉及到的主要知识点有:Apusic应用服务器的使用、JavaMail API的导入和配置、SMTP协议的理解、JavaMail API的基本操作如创建`Session`、`Message`和`Transport`对象,以及处理...

    用javamail发邮件必须的三个jar包.7z

    标题提到的"用javamail发邮件必须的三个jar包.7z"包含了三个核心的JAR文件:mail.jar、activation.jar和additionnal.jar,它们对于JavaMail的邮件发送功能至关重要。 1. **mail.jar**: 这是JavaMail的主要库,包含...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    然后,你可以创建一个 `MimeMessage` 对象,用于构建邮件的内容,包括发件人、收件人、主题和正文。`MimeMessage` 提供了设置各种邮件头信息的方法,如 `setFrom()`, `setRecipients()`, `setSubject()` 和 `setText...

    『JAVA基础』使用JavaMail发邮件的实例

    在阅读博文《『JAVA基础』使用JavaMail发邮件的实例》后,你可以进一步了解如何处理更复杂的邮件场景,如HTML格式的邮件、多语言支持以及错误处理等。这个实例不仅提供了源码,还可能包含了一些实用工具,帮助你更好...

    struts2集成javamail发邮件示例详解

    通过`MimeMessage`的`setFrom`, `setRecipients`, `setSubject`, `setContent`等方法,你可以设置发件人、收件人、主题和邮件内容。 7. **发送邮件**: 最后,使用`Transport.send`方法将构造好的邮件发送出去。`...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    JavaMail 是一个强大的Java库,它允许开发人员在Java应用程序中实现邮件的发送、接收以及管理功能。这个项目不仅提供了SMTP、POP3和IMAP协议的支持,还包含了丰富的API,可以方便地处理邮件的MIME编码、附件、HTML...

    利用JavaMail发邮件

    JavaMail是Java编程语言中用于发送和接收电子邮件的标准API,它提供了一套全面的接口,开发者可以使用这些接口来实现SMTP、POP3、IMAP等邮件协议。在本篇文章中,我们将深入探讨如何利用JavaMail API发送邮件,以及...

    javamail发邮件(带附件)

    ### JavaMail 发送带附件的电子邮件 在Java开发过程中,经常需要通过程序自动发送电子邮件,尤其是在需要进行用户通知、密码重置或者系统日志报告等场景。JavaMail API提供了非常强大的功能来支持这些需求,包括...

    老师上课时写的javamail发邮件的代码

    3. 创建Message:Message对象是邮件的实体,包含邮件的所有信息,如发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress("your-email@example....

    用javaMail发邮件

    3. 构造邮件消息:使用`Message`类创建一个邮件对象,并设置发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress("your-email@example.com"))...

    JavaMail发邮件所需的jar包

    3. **构建Message**:创建一个Message对象,设置发件人、收件人、主题和邮件内容。可以选择不同的Content-Type,如纯文本或HTML。 ```java Message message = new MimeMessage(session); message.setFrom(new ...

    基于Javamail的邮件收发系统.zip

    基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件...

    JAVA-JSP学习系列之JavaMail发邮件

    5. **构建邮件信息**:创建一个`MimeMessage`对象,并设置邮件的各个部分,如发件人、收件人、主题和内容等。 ```java MimeMessage newMessage = new MimeMessage(sendMailSession); newMessage.setFrom(new ...

    javamail发邮件用的包

    2. **创建Message**:使用 `session` 创建 `Message` 对象,并设置发件人、收件人、主题和邮件内容。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress("from@example....

    已经实现了的javamail发邮件代码

    ### JavaMail 发送邮件知识点详解 #### 一、JavaMail 概述 JavaMail 是一个构建在 Java 平台上的电子邮件处理工具包,它提供了一系列的 API 来发送、接收和管理电子邮件。JavaMail 主要依赖于 JavaBeans Activation...

    JavaMail实现邮件发送的简单封装(包括文本、图片、html、附件)

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一组API,使得开发者能够轻松地处理复杂的邮件操作,比如发送文本、图片、HTML内容以及附件。在本文中,我们将深入探讨如何使用...

Global site tag (gtag.js) - Google Analytics