发送ip地址和指定文件到某邮箱

#!/usr/bin/env ruby
#
# ARGV[0] - msg
# ARGV[1] - mailto
# ARGV[2] - filename

require 'open-uri'
require 'rubygems'
require 'action_mailer'

ActionMailer::Base.smtp_settings = {
  :address              => 'smtp.163.com',
  :port                 => 25,
  :domain               => '163.com',
  :user_name            => 'xxfromxx@163.com',
  :password             => 'xxxxxxx',
  :authentication       => 'login',
  :enable_starttls_auto => true
}

class Notifer < ActionMailer::Base
  default :from => 'xxfromxx@163.com'

  def mailip(ip, msg, mailto, file)
    attachments["#{file}"] = File.read("#{file}")
    mail :to => mailto, :subject => "#{msg} ip is #{ip}" do |format|
      format.text { render :text => ip}
    end.deliver
  end
end

open("http://checkip.dyn.com") do |f|
  ip = f.read.slice /[0-9]+(\.[0-9]+){3}/
  filename = "the_file_what_you_want_to_send.xxx"
  Notifer.mailip ip, ARGV[0], ARGV[1] || 'xxtoxx@163.com', ARGV[2] || filename
end
 

 

您可以使用Windows批处理脚本(.bat)来实现自动获取本地公网IP并发送指定邮箱的功能。以下是一个示例的批处理脚本: ```bat @echo off REM 配置发送邮箱和接收邮箱 set "sender_email=your_sender_email@gmail.com" set "sender_password=your_sender_password" set "receiver_email=your_receiver_email@gmail.com" REM 获取公网IP powershell -Command "(Invoke-WebRequest -Uri 'https://api.ipify.org').Content.Trim()" > ip.txt REM 读取IP地址 set /p ip=<ip.txt REM 发送邮件 powershell -ExecutionPolicy Bypass -Command "Send-MailMessage -SmtpServer 'smtp.gmail.com' -Port 587 -UseSsl -Credential (New-Object System.Management.Automation.PSCredential ('%sender_email%', (ConvertTo-SecureString -String '%sender_password%' -AsPlainText -Force))) -From '%sender_email%' -To '%receiver_email%' -Subject 'Public IP Notification' -Body 'Your public IP is %ip%'" REM 删除临时文件 del ip.txt ``` 请将脚本中的 `your_sender_email@gmail.com`、`your_sender_password`、`your_receiver_email@gmail.com` 替换为您自己的邮箱信息。确保您的邮箱支持SMTP服务,并开启了SMTP授权。这个示例使用了Gmail的SMTP服务器,如果您使用其他邮箱,请相应地修改SMTP服务器信息。 将以上代码保存为一个批处理脚本(例如 `get_public_ip.bat`),然后在Windows上运行该脚本,您的公网IP将会被获取并发送指定邮箱。您可以使用Windows计划任务或其他自动化工具来定期运行该批处理脚本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值