BROWSER USE

- Browser Use Agents: give Browser Use a task and receive completed work. API V4 is current for new integrations.
- Browser Infrastructure: connect your agent or automation to managed browsers through SDK, REST, or CDP. Starts at $0.02/browser-hour.
- Developer tools: Open Source, Browser Harness, SDK, and MCP support the two products above.

[Developer Index](https://browser-use.com/index.md)
[Product Map](https://browser-use.com/llms.txt)
[Full Product Context](https://browser-use.com/llms-full.txt)
[Pricing](https://browser-use.com/pricing.md)
[Cloud Docs](https://docs.browser-use.com/cloud/quickstart)
[Open Source Docs](https://docs.browser-use.com/open-source/introduction)

---

# Automate Outlook with an AI agent

Source: https://browser-use.com/skills/outlook. One file from github.com/browser-use/browser-harness, MIT licensed. Written for browser-harness: code calls its helpers (http_get, js, goto_url). Sites change; these notes describe what worked when last updated.

---

<!-- https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/outlook/webmail-compose.md (updated 2026-10-09) -->

# Outlook Web — compose and verify one message

## Route and compose controls

- Mail: `https://outlook.office.com/mail/`.
- Recipient editors: `[contenteditable=true][aria-label="To"]`, with separate `Cc` and `Bcc` editors.
- Subject: `input[aria-label="Subject"]`.
- Body: `[contenteditable=true][aria-label="Message body"]`.
- Recipient entities render as `span._Entity[aria-label]`; inspect each recipient field separately before sending.

## First-use UI and recipient handling

A first-use privacy dialog can appear after the initial inbox has loaded. Dismiss its Continue button before opening compose. A loaded inbox alone does not prove the compose controls are unobstructed.

Typing an address initially leaves the recipient suggestion open. Select the displayed address suggestion and verify that a recipient entity was created before moving to the subject. The popup can cover the subject input.

Do not emit a literal tab character when moving between recipient fields. Some keyboard helpers send a `char` event for Tab as well as key events; Outlook can store that character as an invalid empty recipient. Use raw Tab keyDown/keyUp events without text or char events.

The invalid-address banner offers Remove recipient, but inspect the editor afterward: a raw whitespace character can remain and recreate the invalid entry on the next send attempt. If ordinary editing fails, focus the affected editor. Create `const range = document.createRange()`, then call `range.selectNodeContents(editor)` for that editor. Clear `window.getSelection()` with `removeAllRanges()`, then add the range with `addRange(range)`. Then call `document.execCommand('delete')`. This cleared the editable content in the observed browser. Verify the editor contents afterward. Recheck every recipient field before sending.

## Verification

Successful sending closes compose and removes the draft. Confirm the exact subject and recipient in Sent Items before claiming it was sent or retrying. Sent Items confirms submission; recipient-side delivery and SPF/DKIM/DMARC results require separate recipient-side evidence.
