INTEGRITY Документация

Отправка писем

Отправляйте письма из своих приложений с помощью Cloudflare Email Service. Вы можете использовать привязка Workers для приложений, созданных на Cloudflare Workers, REST API с любой платформы, или SMTP из любого приложения или почтового клиента с поддержкой SMTP.

Настройте свой домен

Перед использованием Email Sending настройте домен.

  1. В панели управления Cloudflare перейдите в Вычисления > Служба электронной почты > Email Sending.

    Перейдите в Email Sending ↗
  2. Выберите Подключить домен.

  3. Выберите домен в своей учетной записи Cloudflare. При необходимости ознакомьтесь с DNS записями, которые Cloudflare добавит в cf-bounce поддомен вашего домена:

    • MX-записи для маршрутизации писем о недоставке в Cloudflare.
    • TXT-запись для SPF разрешает отправку писем.
    • TXT-запись для DKIM обеспечивает аутентификацию писем, отправляемых с вашего домена.
    • TXT-запись для DMARC на _dmarc.yourdomain.com.
  4. Выберите Готово.

После подключения домена вы можете начать отправку писем.

Отправьте первое письмо

Отправить первое письмо можно с помощью привязки Workers, REST API или SMTP.

Если вы разрабатываете на Cloudflare Workers, для нативной отправки писем можно использовать Workers binding. Начните с создания нового проекта Worker.

  1. Создайте новый проект Worker:

    npm create cloudflare@latest -- email-service-tutorial

    Когда появится запрос, выберите Worker «Hello World» в качестве шаблона.

  2. Добавьте привязку email в файл конфигурации Wrangler:

    {
    	"send_email": [
    		{
    			"name": "EMAIL",
    			"remote": true,
    		},
    	],
    }
    [[send_email]]
    name = "EMAIL"
    remote = true
  3. Создайте код Worker в src/index.ts:

    // Configuration - Update these values
    const YOUR_DOMAIN = "yourdomain.com"; // Replace with your verified domain
    const RECIPIENT_EMAIL = "[email protected]"; // Replace with your email to receive test emails
    
    export default {
    	async fetch(request: Request, env: Env): Promise<Response> {
    		// Send a welcome email
    		const response = await env.EMAIL.send({
    			to: RECIPIENT_EMAIL,
    			from: `welcome@${YOUR_DOMAIN}`,
    			subject: "Welcome to our service!",
    			html: "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
    			text: "Welcome! Thanks for signing up.",
    		});
    
    		return new Response(`Email sent: ${response.messageId}`);
    	},
    } satisfies ExportedHandler<Env>;
  4. Используйте npx wrangler dev для разработки проекта Worker и отправки писем. Это позволяет запускать код локально, подключаясь к Cloudflare Email Service (с использованием удаленные привязки).

    npx wrangler dev
    # ⎔ Starting remote preview...
    # Total Upload: 24.96 KiB / gzip: 6.17 KiB
    # [wrangler:info] Ready on http://localhost:8787
  5. Разверните ваш Worker:

    npm run deploy

После развертывания проверьте, что Worker может отправлять письма:

  1. Откройте URL-адрес Worker в браузере (он указан в выводе развертывания, например: https://email-service-tutorial.<your-subdomain>.workers.dev).
  2. Вы должны увидеть ответ вроде Email sent: <message-id>.
  3. Проверьте почтовый ящик для email-адреса, указанного в RECIPIENT_EMAIL. Если письмо не пришло, проверьте папку со спамом.

Отправьте письмо с одним curl команду. Замените {account_id} с вашим Cloudflare account ID и <API_TOKEN> с API-токен.

curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send" \
  --header "Authorization: Bearer <API_TOKEN>" \
  --header "Content-Type: application/json" \
  --data '{
    "to": "[email protected]",
    "from": "[email protected]",
    "subject": "Welcome to our service!",
    "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
    "text": "Welcome! Thanks for signing up."
  }'

Успешный ответ включает статус доставки для каждого получателя:

{
	"success": true,
	"errors": [],
	"messages": [],
	"result": {
		"delivered": ["[email protected]"],
		"permanent_bounces": [],
		"queued": []
	}
}

Подробнее см. в Справочник по REST API.

Отправьте письмо с одним curl команду. Замените <API_TOKEN> с API-токен Cloudflare у которого есть Email Sending: Edit разрешение, и замените --mail-from и --mail-rcpt адреса на собственные.

cat > mail.txt <<EOF
From: [email protected]
To: [email protected]
Subject: Welcome to our service!

Thanks for signing up.
EOF

curl --ssl-reqd \
  --url "smtps://smtp.mx.cloudflare.net:465" \
  --user "api_token:<API_TOKEN>" \
  --mail-from "[email protected]" \
  --mail-rcpt "[email protected]" \
  --upload-file mail.txt

Домен отправителя ([email protected]) должен быть подключён для Email Sending в аккаунте, которому принадлежит API-токен.

Сведения о подключении, аутентификации, кодах ответов и примеры для конкретных языков см. в Справочник по SMTP.

Следующие шаги

Теперь, когда вы можете отправлять письма, ознакомьтесь с дополнительными возможностями: