adding-azure-communication-services-emaillisted
Install: claude install-skill alexpizarro/azure-lean-stack-skills
# Adding Azure Communication Services Email
Transactional email via Azure Communication Services. Pay-as-you-go: **$0.00025/email + $0.00012/MB**, no free allowance — but 5,000 emails/month is about US$1.25, cheaper than any SendGrid tier for low-volume projects. Mind the **rate limits**: an Azure-managed domain is capped at **10 emails/hour** (not raisable); a verified custom domain gets 100/hour and 30/minute, raisable by support ticket.
## When to use ACS Email
| Need | Use |
|------|-----|
| Account verification, password reset, transactional notifications | **ACS Email** (this skill) |
| Marketing campaigns, newsletters, A/B testing | A marketing-focused provider (Mailchimp, etc.) — ACS doesn't do that |
| High-volume bulk send (>100k/day) | SendGrid Pro or Mailgun (ACS gets expensive at scale) |
## The three ACS quirks
### 1. `location: 'global'` (literal string, not a real Azure region)
```bicep
resource emailService 'Microsoft.Communication/emailServices@2025-09-01' = {
name: emailServiceName
location: 'global' // ← NOT 'australiaeast', NOT location param
properties: { dataLocation: 'Australia' }
}
```
If you pass the project's `location` param (`australiaeast`), Azure rejects the deploy.
### 2. `dataLocation` uses plain English
The values for `dataLocation` are not Azure region IDs. They're region groupings:
| `dataLocation` value | Where data is stored |
|---------------------|---------------------|
| `'Australia'` | AU data centres