SkillAgentSearch skills...

Gmail

A Python library for interacting with Gmail

Install / Use

/learn @zxc/Gmail
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

gmail.py - interact with Gmail through python

  • gmail.py wraps imaplib and smtplib to make it easier to interact with your Gmail account through python.

  • Examples:

    • Login (this automatically connects to IMAP and SMTP) and then out:

      import gmail conn = gmail.Gmail('username', 'password')

      do stuff...

      conn.logout()

    • Interact with labels:

      conn.labels.switch('sent') 1567 # Number of emails in that label conn.labels.create('mylabel') conn.labels.delete('mylabel') conn.labels.exists('foo') False len(conn.labels.all()) 25

    • Search email:

      Chainable queries

      conn.search.subject('foo').to('alternate@gmail.com') conn.search.unread() msgs = conn.search.all()

      msgs will be unread emails sent to 'alternate@gmail.com'

      with 'foo' in the subject

    • Download email:

      msgs = conn.search.unread().all() msgs [<gmail.Message object...] msgs[0].subject() 'V1agra for Sale! #1 ONLINE PHARMACY!' msgs = conn.all()

    • Send email:

      msg = gmail.Message().fill('you@gmail.com', 'me@gmail.com', ... 'fwd: fwd: funny', 'pictures of cats') msg.to_addresses() ['you@gmail.com'] msg.subject() 'fwd: fwd: funny' conn.send(msg)

  • Notes:

    • Messages are not downloaded when they are created. They store their id and a reference to your IMAP connection. When you first try to read anything from them, they download.

    • Basically zero error handling is done right now.

  • API (no return unless indicated):

    Gmail.init(username, password) - Connect and login to Gmail. - The current label is set to the inbox. - Returns a Gmail object.

    Gmail.logout(close_imap=True, close_smtp=True) - Close connections.

    Gmail.fetch(id) - Return a Message object for a given id.

    Gmail.send(message) - Send a Message object.

    Gmail.search.clear() - Clear the current query.

    Gmail.search.first() - Returns the first Message result for the current query.

    Gmail.search.all() - If a query is in progress, returns a list of result Messages. - Otherwise returns a list of all Messages for the current Label.

    Gmail.search.count() - Returns the number of results for the current query.

    Gmail.search.unread() Gmail.search.read() Gmail.search.to(query) Gmail.search.from_(query) Gmail.search.subject(query) Gmail.search.bcc(query) Gmail.search.cc(query) Gmail.search.body(query) Gmail.search.since(date) Gmail.search.before(date) Gmail.search.on(date) - Builds the current query. - Returns the Search chainable.

    Gmail.labels.exists(label) - Return True or False if the label exists.

    Gmail.labels.switch(label) - Change the current label. - This clears the current search.

    Gmail.labels.create(label) - Create a label.

    Gmail.labels.delete(label) - Delete a label.

    Gmail.labels.rename(old, new) - Rename a label.

    Gmail.labels.all() - Return a list of current labels.

    Gmail.labels.current - The current label.

    Gmail.labels.count - The number of messages in the current label.

    Message.init(options) - Options are used internally. - If you are creating a message to send, don't fill in any options. - Instead, do '> msg = Message().fill(your content)'.

    Message.fill(to_addresses='', from_address='', subject='', body='') - Create a message to send. - Returns itself.

    Message.fetch() - Downloads the content of a message from the server. - Returns itself.

    Message.from_address(address) - If 'address' is omitted, returns the current from address. - Otherwise sets the from address.

    Message.to_address(address) - If 'address' is omitted, returns the current list of to addresses. - Otherwise sets the to addresses. - 'address' can be a string or list.

    Message.subject(subject) - If 'subject' is omitted, returns the current subject. - Otherwise sets the subject.

    Message.body(body) - If 'body' is omitted, returns the current message body. - Otherwise sets the message body.

    Message.read() Message.unread() - Mark a message as read/unread.

    Message.delete() - Delete a message from the current label.

    Message.archive() - Archive a message.

    Message.star() Message.unstar() - Star/Unstar a message.

    Message.spam() - Mark a message as spam.

    Message.flag(flag) Message.unflag(flag) - Typically internal commands, add/remove a flag for a message.

    Message.add_label(label) - Add a label to the message.

    Message.move_to(label) - Move a message to a new label.

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated7y ago
Forks0

Languages

Python

Security Score

55/100

Audited on Dec 31, 2018

No findings