Module: MailgunHelper

Included in:
MailClient
Defined in:
lib/howitzer/utils/email/mailgun_helper.rb

Instance Method Summary collapse

Instance Method Details

#create_mailbox(user_name, domain = settings.mail_pop3_domain, password = settings.mail_pop3_user_pass) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/howitzer/utils/email/mailgun_helper.rb', line 14

def create_mailbox(user_name,
                   domain=settings.mail_pop3_domain,
                   password=settings.mail_pop3_user_pass)
  log.info "Create '#{user_name}@#{domain}' mailbox"
  mbox = Mailbox.new(:user => user_name, :domain => domain, :password => password)
  mbox.upsert()
  mbox
end

#delete_all_mailboxes(*exceptions) ⇒ Object

Deletes all mailboxes except those in exceptions

Parameters:

  • exceptions - list of email addresses



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/howitzer/utils/email/mailgun_helper.rb', line 48

def delete_all_mailboxes(*exceptions)
  exceptions += ["postmaster@#{settings.mail_smtp_domain}"] #system and default mailbox
  exceptions = exceptions.uniq
  log.info "Delete all mailboxes except: #{exceptions.map(&:inspect).join(', ')}"
  i = 0
  Mailbox.find(:all).each do |m|
    next if exceptions.include?("#{m.user}@#{m.domain}")
    Mailbox.delete(m.id)
    i += 1
  end

  log.info "Were deleted '#{i}' mailboxes"
end

#delete_mailbox(mailbox) ⇒ Object

Deletes given mailbox

Parameters:

  • mailbox - mailbox to delete



31
32
33
34
35
36
37
38
# File 'lib/howitzer/utils/email/mailgun_helper.rb', line 31

def delete_mailbox(mailbox)
  log.info "Delete '#{mailbox.user}@#{mailbox.domain}' mailbox"
  begin
    Mailbox.remove(mailbox)
  rescue Exception => e
    log.warn "Unable to delete '#{mailbox.user}' mailbox: #{e.message}"
  end
end