`

发送邮件

阅读更多

package com.email.send;

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

/**//**
 * @author Bromon
 */
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代发邮件

    这个类称为 MailInfo,包含了邮件的各种信息,例如邮件服务器的主机名和端口号、邮件发送者的地址、邮件接收者的地址、邮件主题、邮件内容、邮件附件等。 在 MailInfo 类中,我们定义了多个成员变量,用于存储邮件...

    实现网页发邮件

    在IT领域,网页发邮件是一种常见的功能,它允许用户通过浏览器界面发送电子邮件,而无需借助桌面邮件客户端。本文将深入探讨如何使用HTML实现这一功能,以及相关的关键技术点。 首先,我们要理解HTML(HyperText ...

    在线发邮件 -您只需输入发送邮件的地址、标题和正文即可发送邮件

    在线发邮件系统是一种便捷的工具,它允许用户无需登录邮箱客户端或网页版邮箱,直接通过输入必要的信息(发送邮件的地址、标题和正文)来发送邮件。这种系统通常基于Web技术构建,为用户提供了一个简洁的界面,使得...

    在Qt中发送邮件的库。

    发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件...

    多线程发邮件

    本示例“多线程发邮件”就是利用了这一特性,通过并发执行多个邮件发送任务,来加快邮件的发送速度。下面我们将深入探讨相关知识点。 首先,多线程是指在一个进程中同时执行多个线程,这些线程可以共享同一块内存...

    BO自动发邮件配置指导

    ### SAP BO 自动发邮件配置指导 #### 一、引言 在企业级应用中,自动化工具能够极大地提高工作效率并减少人为错误。SAP BusinessObjects(简称BO)提供了强大的数据分析和报告工具,其中包括了自动发送电子邮件的...

    foxmail发邮件箱内无显示

    ### Foxmail已发邮件无显示问题解析与解决方法 #### 一、问题概述 在使用Foxmail客户端发送邮件的过程中,可能会遇到一个较为常见的问题:已发送的邮件在“已发送”文件夹中无法正常显示出来。这不仅影响了用户的...

    服务器无法发邮件的问题彻底解决了

    本文将详细介绍如何在服务器已经屏蔽了所有发邮件函数的情况下,依然能够成功发送邮件的方法。 #### 一、问题背景与分析 当一个网站或应用无法正常发送邮件时,这往往会给业务带来较大的影响,例如用户注册验证、...

    VBA:借助jmail控件一键发送邮件

    提供的文件“Jmail发邮件--成功.xls”可能是包含VBA代码的示例Excel工作簿,其中包含了完整的邮件发送功能。你可以打开这个文件,查看并学习如何将上述代码整合进实际的VBA项目中。 总的来说,利用VBA和Jmail控件,...

    .net465端口发送邮件

    .net 465端口发送邮件,开发过程中,经常会使用到发送邮件功能,而我们在使用阿里云服务器发送邮件时,由于安全原因,阿里云禁用掉了25端口,于是就造成了我们在本地使用25端口发送邮件时是好的,一放到服务器上就...

    PB发送邮件开发代码

    总之,使用PowerBuilder结合jmail库发送邮件是一项常见的任务,通过理解PowerBuilder的ActiveX集成和邮件发送协议,开发者可以创建出功能完备的邮件发送功能。同时,对于特定的邮件服务商,如QQ邮箱,需要了解其SMTP...

    perl自动发邮件

    标题"perl自动发邮件"表明我们要讨论如何利用Perl编写脚本来创建一个自动发送邮件的程序。Perl提供了多个模块来处理电子邮件的发送,其中最常用的是`Email::Sender`系列模块,如`Email::Sender::Simple`用于基础的...

    SAP 发送邮件 详细步骤

    - SAP中的发件人邮箱设置有两种方式:一种是在`SCOT`中直接设置“DefaultDomain”,另一种则是在需要发送邮件的用户的“远程邮件”栏中填写发件人的邮箱地址。 - 根据实际情况选择适合的方式进行设置。 ##### 6. ...

    匿名发送邮件软件(可批量发送)

    这通常通过使用特定的邮件服务或软件实现,这些工具可以隐藏发件人的IP地址和电子邮件地址。匿名发送邮件的主要目的是保护隐私,避免垃圾邮件过滤器,或者在进行敏感通信时提供额外的安全层。然而,值得注意的是,...

    C#自动发送邮件

    在发送邮件前,我们需要定义发件人(`MailAddress`)和收件人(`MailAddress`)。 ```csharp MailAddress from = new MailAddress(listPara[0].Replace("\r", "").Trim(), ""); // 发件人邮箱地址 MailAddress to = ...

    java发邮件 java发email

    4. **创建Message对象**:`Message`对象代表邮件本身,使用`MimeMessage`类创建它,并设置发件人、收件人、主题和正文。例如: ```java MimeMessage message = new MimeMessage(session); message.setFrom(new ...

    通过excel配置自动发送邮件

    SMTP是互联网标准,用于从发件人邮件服务器传输邮件到收件人邮件服务器。邮件发送.exe可能就是实现SMTP通信的程序,它连接到SMTP服务器,根据Excel中的数据发送邮件。 ICSharpCode.SharpZipLib是一个.NET的压缩库,...

    网站用户注册成功后自动发送邮件

    例如,使用PHPMailer,我们首先需要下载并引入库文件,然后设置SMTP服务器信息,创建邮件对象,设置发件人、收件人、主题和内容,最后调用发送方法。 ```php require 'PHPMailer/PHPMailerAutoload.php'; $mail =...

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将详细探讨这些问题的原因及相应的解决方案。 ##...

Global site tag (gtag.js) - Google Analytics