imap localhost: Unsupported authentication mechanism.

Discussion in 'Ruby' started by Thufir, Dec 14, 2012.

  1. Thufir

    Thufir Guest

    How do you login to localhost imap?


    require 'rubygems'
    require 'net/imap'

    imap ='localhost')
    imap.authenticate('LOGIN', 'thufir', 'password')
    imap.examine('INBOX')["RECENT"]).each do |message_id|
    envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
    puts "#{envelope.from[0].name}: \t#{envelope.subject}"

    running the code:

    [email protected]:~/ruby$
    [email protected]:~/ruby$ ruby imap.rb
    /home/thufir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/net/imap.rb:1141:in`get_tagged_response': Unsupported authentication mechanism. (Net::IMAP::NoResponseError)
    from /home/thufir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/net/imap.rb:1195:in `block in send_command'
    from /home/thufir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
    from /home/thufir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/net/imap.rb:1177:in `send_command'
    from /home/thufir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/net/imap.rb:402:in `authenticate'
    from imap.rb:6:in `<main>'
    [email protected]:~/ruby$

    I'm using dovecot-postfix and dovecot-imapd on Ubuntu 12.04. Thunderbird connects to IMAP on localhost and reads fine with the above configuration (different password, of course).

    The host is of which is owned and operated , and which I've registered that FQDN host name. It doesn't resolve to anything on DNS, it's just to have a FQDN. I'm not sending nor receiving to the internet at large, everything is on localhost, aka, and, of course, to re-iterate, thunderbird just connects to an IMAP server on localhost (dovecot-imapd) and works fine.

    I don't see how it's an Unsupported authentication mechanism. (Net::IMAP::NoResponseError) given that Thunderbird connects fine.


    Thufir, Dec 14, 2012
    1. Advertisements

  2. Thufir

    Thufir Guest

    Thufir, Dec 14, 2012
    1. Advertisements

  3. Thufir

    Thufir Guest

    this works:

    require 'net/imap'
    imap ='localhost')
    puts "logged in"'INBOX')
    mailIds =['ALL'])
    mailIds.each do |id|
    msg = imap.fetch(id,'RFC822')[0].attr['RFC822']
    puts msg

    I'll look into the distinction tomorrow. So, of course, in asking the question I found the answer.
    Thufir, Dec 14, 2012
  4. Thufir

    Thufir Guest

    Ok, it's morning and I've looked at the code now. For the record, I adopted the working code from <>.

    I'll leave it for later as to why the sample from the NET::IMAP gem invokes a different method (function?). The documentation sample uses imap.authenticate while the sample from stackoverflow uses imap.login for some reason.

    I'm sure that reading the API would explain this, I'll go back to the gem documentation. I don't recall seeing mention of this on the gem web page, but maybe I didn't notice.

    Thufir, Dec 14, 2012
    1935blackhawk, Apr 16, 2014
    1935blackhawk, Apr 16, 2014
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.