Skip to main content
Resend Docs

Search documentation

Type to search this documentation.

On this pageOverview

Sender email addresses in Resend

Resend does not require you to “create an email address”, “set up a sender identity”, or “add a from-address” before sending.

Once a domain is verified in your Resend account, you can send from any email address at that domain.

You add the sender address in the from field when you send the email.

To include a friendly name, use the format "Your Name <sender@example.com>".

Node.js
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

await resend.emails.send({
  from: 'Acme <onboarding@example.com>',
  to: ['customer@example.com'],
  subject: 'Welcome to Acme',
  html: '<p>Thanks for signing up!</p>',
});
PHP
$resend = Resend::client('re_xxxxxxxxx');

$resend->emails->send([
  'from' => 'Acme <onboarding@example.com>',
  'to' => ['customer@example.com'],
  'subject' => 'Welcome to Acme',
  'html' => '<p>Thanks for signing up!</p>'
]);
Python
import resend

resend.api_key = "re_xxxxxxxxx"

params: resend.Emails.SendParams = {
  "from": "Acme <onboarding@example.com>",
  "to": ["customer@example.com"],
  "subject": "Welcome to Acme",
  "html": "<p>Thanks for signing up!</p>"
}

email = resend.Emails.send(params)
print(email)
Ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

params = {
  "from": "Acme <onboarding@example.com>",
  "to": ["customer@example.com"],
  "subject": "Welcome to Acme",
  "html": "<p>Thanks for signing up!</p>"
}

sent = Resend::Emails.send(params)
puts sent
Go
package main

import (
	"context"
	"fmt"

	"github.com/resend/resend-go/v4"
)

func main() {
  ctx := context.TODO()
  client := resend.NewClient("re_xxxxxxxxx")

  params := &resend.SendEmailRequest{
      From:    "Acme <onboarding@example.com>",
      To:      []string{"customer@example.com"},
      Subject: "Welcome to Acme",
      Html:    "<p>Thanks for signing up!</p>",
  }

  sent, err := client.Emails.SendWithContext(ctx, params)

  if err != nil {
    panic(err)
  }
  fmt.Println(sent.Id)
}
Rust
use resend_rs::types::CreateEmailBaseOptions;
use resend_rs::{Resend, Result};

#[tokio::main]
async fn main() -> Result<()> {
  let resend = Resend::new("re_xxxxxxxxx");

  let from = "Acme <onboarding@example.com>";
  let to = ["customer@example.com"];
  let subject = "Welcome to Acme";
  let html = "<p>Thanks for signing up!</p>";

  let email = CreateEmailBaseOptions::new(from, to, subject)
    .with_html(html);

  let _email = resend.emails.send(email).await?;

  Ok(())
}
Java
import com.resend.*;

public class Main {
    public static void main(String[] args) {
        Resend resend = new Resend("re_xxxxxxxxx");

        CreateEmailOptions params = CreateEmailOptions.builder()
                .from("Acme <onboarding@example.com>")
                .to("customer@example.com")
                .subject("Welcome to Acme")
                .html("<p>Thanks for signing up!</p>")
                .build();

        CreateEmailResponse data = resend.emails().send(params);
    }
}
.NET
using Resend;

IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI

var resp = await resend.EmailSendAsync( new EmailMessage()
{
    From = "Acme <onboarding@example.com>",
    To = "customer@example.com",
    Subject = "Welcome to Acme",
    HtmlBody = "<p>Thanks for signing up!</p>",
} );
Console.WriteLine( "Email Id={0}", resp.Content );
cURL
curl -X POST 'https://api.resend.com/emails' \
     -H 'Authorization: Bearer re_xxxxxxxxx' \
     -H 'Content-Type: application/json' \
     -d $'{
  "from": "Acme <onboarding@example.com>",
  "to": ["customer@example.com"],
  "subject": "Welcome to Acme",
  "html": "<p>Thanks for signing up!</p>"
}'
CLI
resend emails send \
  --from "Acme <onboarding@example.com>" \
  --to customer@example.com \
  --subject "Welcome to Acme" \
  --html "<p>Thanks for signing up!</p>"

In this example, onboarding@example.com is the sender address. As long as example.com is verified in Resend, you can use that address in from without creating it first.

Some platforms require you to create, register, or pre-approve a sending address.
Resend does not. After verifying your domain, you’re free to send from any address at that domain, such as notifications@example.com or updates@example.com. No extra setup, creation, or configuration of that address is needed.

To start sending emails with Resend:

  1. Sign up for a Resend account
  2. Add and verify your domain
  3. Create an API key
  4. Start sending emails immediately from any address at the domain you verified

If you're having trouble with domain verification or DNS records, see our domain verification troubleshooting guide or check our DNS setup guides for your specific DNS provider.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu