【问题标题】:Ruby Mechanize Outlook Web AccessRuby 机械化 Outlook Web Access
【发布时间】:2011-11-06 20:33:47
【问题描述】:

我正在尝试使用 ruby​​ mechanize 从我的 Outlook Web 访问帐户访问特定电子邮件。

我正在使用以下代码。

需要“机械化” 需要'记录器' a = 机械化.new a.cookie_jar(HTTP::Cookies.new) a.log = Logger.new('log1.log') a.get('htts://webmail.xxxxxxx.org/') 做 |page| my_page = page.form_with(:action => '/owa/auth.owa') 做 |f| f.username = "------------" f.password = "------------" end.click_button #a.cookie_jar.load('cookies.yml') a.get('https://webmail.xxxxxxx.org/owa/Inbox/?Cmd=contents&Page=1') 做|p| 文件 = File.new("new.xml","w+") file.puts p.parser.to_xml 文件关闭 结尾 结尾

为什么这段代码不起作用?

【问题讨论】:

  • 这里有问题吗?

标签: ruby mechanize


【解决方案1】:

这是使用 nokogiri 和机械化到 SSL owa 交换网站的工作 OWA 检索脚本。

它需要安装 ruby​​gems、mechanize (+deps) 和 highline。

需要“红宝石” 需要“机械化” 需要'记录器' 需要'highline/import' @url = 'https://email.***.***/Exchange' @mechanize = 机械化.new { |a| a.log = Logger.new('./log1.log') } #如果您没有受信任的证书 @mechanize.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE @mechanize.user_agent_alias = 'Windows Mozilla' @mechanize.keep_alive = '启用' username = ask("请输入您的用户名:") domain = ask("请输入您的域名:") password = ask("请输入您的密码:") {|q| q.echo = "*" } @mechanize.get(@url) 做 |page| 表单 = page.forms[0] 表单[“用户名”] = 域 + '\\' + 用户名 表单[“密码”] = 密码 page = form.submit 结尾 ## 常用邮箱方案 @mailbox = "#{用户名}" # @mailbox = "#{username}@#{domain}.#{tld}" # @mailbox = "#{用户名}@#{域}" @inbox = @url + "/#{@mailbox}/Inbox/?Cmd=contents&Page=1&View=Unread%20Messages" 收件箱列表 = @mechanize.get(@inbox) 做 |page| 片段 = Nokogiri::HTML(page.body) ["//img[@src='/exchweb/img/icon-msg-unread.gif']"].each 做 |xpathq| puts "找到 #{fragment.xpath(xpathq).count} 个新电子邮件。" 结尾 ["//img[@src='/exchweb/img/icon-mtgreq.gif']"].each 做 |xpathq| puts "Found #{fragment.xpath(xpathq).count} 个新的会议请求。" 结尾 结尾

示例脚本输出:

$红宝石./owa.rb 输入您的用户名:john.doe 输入您的域名:mywork 输入您的密码:************ 找到 31 封新电子邮件。 找到 3 个新的会议请求。

【讨论】:

    【解决方案2】:

    我不知道使用目的和问题,但是使用 Capybara 和 Selenium 访问这个网站可能会更好?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-13
      • 2013-09-07
      • 2012-08-05
      • 2016-04-17
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多