> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paubox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Receiving client

> Full reference for the Paubox Ruby SDK receiving API: managing domains, mailboxes, and retrieving inbound email.

The receiving methods are on the same `Paubox::Client` you use to send email.

```ruby theme={null}
client = Paubox::Client.new(api_key: 'YOUR_API_KEY')
```

## Domains

### List domains

```ruby theme={null}
result = client.list_receiving_domains
result['data'].each { |d| puts d['domain'] }
```

### Create a domain

```ruby theme={null}
result = client.create_receiving_domain(slug: 'support')
puts result['data']['domain'] # => "support.inbound.paubox.email"
```

Omit `slug:` to auto-generate one.

### Get a domain

```ruby theme={null}
result = client.get_receiving_domain(1)
```

### Delete a domain

```ruby theme={null}
client.delete_receiving_domain(1)
```

## Mailboxes

### List mailboxes

```ruby theme={null}
result = client.list_receiving_mailboxes(domain_id)
```

### Create a mailbox

```ruby theme={null}
result = client.create_receiving_mailbox(domain_id,
  name: 'intake',
  password: 'SecurePass123!'
)
puts result['data']['email_address'] # => "intake@support.inbound.paubox.email"
```

Pass `quota_bytes:` to set a storage quota.

### Get a mailbox

```ruby theme={null}
result = client.get_receiving_mailbox(domain_id, mailbox_id)
```

### Delete a mailbox

```ruby theme={null}
client.delete_receiving_mailbox(domain_id, mailbox_id)
```

## Emails

### List received emails

```ruby theme={null}
result = client.list_received_emails(limit: 10)
result['data'].each { |e| puts "#{e['email_id']}: #{e['subject']}" }

# Cursor pagination
next_page = client.list_received_emails(after: result['data'].last['email_id'])
```

### Get a received email

```ruby theme={null}
result = client.get_received_email('eaaaaab')
puts result['data']['body']['text']
```

### Download an attachment

```ruby theme={null}
response = client.get_received_email_attachment('eaaaaab', 'blob123')
File.binwrite('report.pdf', response.body)
```

The response is the raw `RestClient::Response`; call `.body` for the bytes.
