403Webshell
Server IP : 217.160.0.244  /  Your IP : 216.73.217.138
Web Server : Apache
System : Linux infong-eu155 4.4.400-icpu-108 #2 SMP Wed Feb 11 11:51:01 UTC 2026 x86_64
User : u100174116 ( 6746176)
PHP Version : 8.5.10
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /kunden/lib/ruby/gems/3.3.0/gems/net-imap-0.4.19/sample/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /kunden/lib/ruby/gems/3.3.0/gems/net-imap-0.4.19/sample/net-imap.rb
require 'net/imap'
require "getoptlong"

$stdout.sync = true
$port = nil
$user = ENV["USER"] || ENV["LOGNAME"]
$auth = "login"
$ssl = false
$starttls = false

def usage
  <<EOF
usage: #{$0} [options] <host>

  --help                        print this message
  --port=PORT                   specifies port
  --user=USER                   specifies user
  --auth=AUTH                   specifies auth type
  --starttls                    use starttls
  --ssl                         use ssl
EOF
end

begin
  require 'io/console'
rescue LoadError
  def _noecho(&block)
    system("stty", "-echo")
    begin
      yield STDIN
    ensure
      system("stty", "echo")
    end
  end
else
  def _noecho(&block)
    STDIN.noecho(&block)
  end
end

def get_password
  print "password: "
  begin
    return _noecho(&:gets).chomp
  ensure
    puts
  end
end

def get_command
  printf("%s@%s> ", $user, $host)
  if line = gets
    return line.strip.split(/\s+/)
  else
    return nil
  end
end

parser = GetoptLong.new
parser.set_options(['--debug', GetoptLong::NO_ARGUMENT],
  ['--help', GetoptLong::NO_ARGUMENT],
  ['--port', GetoptLong::REQUIRED_ARGUMENT],
  ['--user', GetoptLong::REQUIRED_ARGUMENT],
  ['--auth', GetoptLong::REQUIRED_ARGUMENT],
  ['--starttls', GetoptLong::NO_ARGUMENT],
  ['--ssl', GetoptLong::NO_ARGUMENT])
begin
  parser.each_option do |name, arg|
    case name
    when "--port"
      $port = arg
    when "--user"
      $user = arg
    when "--auth"
      $auth = arg
    when "--ssl"
      $ssl = true
    when "--starttls"
      $starttls = true
    when "--debug"
      Net::IMAP.debug = true
    when "--help"
      usage
      exit
    end
  end
rescue
  abort usage
end

$host = ARGV.shift
unless $host
  abort usage
end

imap = Net::IMAP.new($host, :port => $port, :ssl => $ssl)
begin
  imap.starttls if $starttls
  class << password = method(:get_password)
    alias to_str call
  end
  imap.authenticate($auth, $user, password)
  while true
    cmd, *args = get_command
    break unless cmd
    begin
      case cmd
      when "list"
        for mbox in imap.list("", args[0] || "*")
          if mbox.attr.include?(Net::IMAP::NOSELECT)
            prefix = "!"
          elsif mbox.attr.include?(Net::IMAP::MARKED)
            prefix = "*"
          else
            prefix = " "
          end
          print prefix, mbox.name, "\n"
        end
      when "select"
        imap.select(args[0] || "inbox")
        print "ok\n"
      when "close"
        imap.close
        print "ok\n"
      when "summary"
        unless messages = imap.responses["EXISTS"][-1]
          puts "not selected"
          next
        end
        if messages > 0
          for data in imap.fetch(1..-1, ["ENVELOPE"])
            print data.seqno, ": ", data.attr["ENVELOPE"].subject, "\n"
          end
        else
          puts "no message"
        end
      when "fetch"
        if args[0]
          data = imap.fetch(args[0].to_i, ["RFC822.HEADER", "RFC822.TEXT"])[0]
          puts data.attr["RFC822.HEADER"]
          puts data.attr["RFC822.TEXT"]
        else
          puts "missing argument"
        end
      when "logout", "exit", "quit"
        break
      when "help", "?"
        print <<EOF
list [pattern]                  list mailboxes
select [mailbox]                select mailbox
close                           close mailbox
summary                         display summary
fetch [msgno]                   display message
logout                          logout
help, ?                         display help message
EOF
      else
        print "unknown command: ", cmd, "\n"
      end
    rescue Net::IMAP::Error
      puts $!
    end
  end
ensure
  imap.logout
  imap.disconnect
end

Youez - 2016 - github.com/yon3zu
LinuXploit