Send React Emails - Tutorial 2026
Send emails from React and Node.js web apps using HTML, CSS, and JSX templates. Production-ready SMTP integration guide with code examples and best practices.

Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ npm-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ @react-email/render ΠΈ nodemailer:
npm install @react-email/render nodemailer
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΠΈΡΡΠΌΠ° Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .jsx ΠΈΠ»ΠΈ .js:
// email.jsx
import * as React from 'react';
import { Html } from '@react-email/html';
import { Button } from '@react-email/button';
export function Email(props) {
const { url } = props;
return (
<Html lang="en">
<Button href={url}>ΠΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π°Ρ ΡΠ°ΠΉΡ</Button>
</Html>
);
}
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Nodemailer ΠΈ Π΅Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΠ½ΡΠΎΡΠ° Forward Email Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΠΏΠΈΡΠ΅ΠΌ.
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΠΏΠΈΡΠ΅ΠΌ β ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ Π½Π°ΡΠ΅ΠΌΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ ΠΏΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· SMTP Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ.
// app.js
import { render } from '@react-email/render';
import nodemailer from 'nodemailer';
import { Email } from './email';
const transporter = nodemailer.createTransport({
host: 'smtp.forwardemail.net',
port: 465,
secure: true,
auth: {
// TODO: Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ `user` ΠΈ `pass` ΠΈΠ·:
// <https://forwardemail.net/guides/send-email-with-custom-domain-smtp>
user: 'you@example.com',
pass: '****************************'
},
});
const html = render(Email({ url: "https://example.com" }));
const options = {
from: 'you@example.com',
to: 'user@gmail.com',
subject: 'hello world',
html
};
transporter.sendMail(options);
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΡΠΌΠ°:
node app
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΠΎΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ β ΠΠΈΡΡΠΌΠ°, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠ°ΡΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΠ΅ΠΌ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π»ΠΎΠ³ΠΈ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ HTML/ΡΠ΅ΠΊΡΡΠ°/Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
P.S. π ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠΈΡΡΠΌΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΈ iOS-ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΠΈΡΠ΅ΠΌ Ρ Node.js.