Resend

트랜잭션 메일 API. 월 3,000통과 하루 100통까지 무료입니다.

···
html
<div class="usage" data-motif="mail"><div class="head"><b>RESEND · EMAIL</b><span id="amount">0</span></div><div class="art"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></div><div class="rail"><span id="fill"></span></div><div class="readout"><span id="volume">0</span><strong id="cost">$0</strong></div><input id="usage-slider" type="range" min="0" max="3000000" step="1" value="0" aria-label="Monthly usage"><small>Cheapest published tier · Pro 100k/$35</small></div>
css
.usage{width:min(94vw,760px);height:min(88vh,325px);padding:clamp(8px,2.2vmin,17px);border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:clamp(4px,1.4vmin,9px);font:600 clamp(12px,2.5vmin,17px)/1.2 var(--font-sans,system-ui);overflow:hidden}.head,.readout{display:flex;align-items:center;justify-content:space-between;gap:8px}.head b{font-size:1.1em;color:var(--accent)}.head span{font-family:ui-monospace,monospace;color:var(--muted)}.art{flex:1;min-height:35px;display:flex;align-items:center;justify-content:center;gap:clamp(3px,1.2vmin,10px);padding:3px 7px}.art i{display:block;flex:1;max-width:52px;height:35%;border:2px solid var(--line);background:var(--bg);transition:background .3s,height .3s,transform .3s}.art i.on{background:var(--accent);border-color:var(--accent)}.rail{height:7px;border-radius:7px;background:var(--line);overflow:hidden}.rail span{display:block;height:100%;width:0;background:var(--accent-2);transition:width .35s}.readout strong{font:800 clamp(15px,4.5vmin,27px)/1 ui-monospace,monospace;color:var(--accent-2)}.readout strong.unknown{font-size:clamp(11px,2.6vmin,16px)}.usage input{width:100%;height:18px;accent-color:var(--accent)}.usage small{color:var(--muted);font-size:clamp(10px,2.2vmin,13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-motif=people] .art i{flex:none;width:clamp(15px,5vmin,36px);height:clamp(15px,5vmin,36px);border-radius:50%;box-shadow:0 9px 0 -4px var(--line)}[data-motif=key] .art i{height:55%;border-radius:40% 40% 4px 4px;transform:rotate(-12deg)}[data-motif=mail] .art i{height:48%;border-radius:3px;clip-path:polygon(0 0,100% 0,100% 85%,50% 52%,0 85%)}[data-motif=route] .art i{height:14%;border-radius:20px;transform:translateY(calc((var(--n,0) - 3) * 5px))}[data-motif=route] .art i:nth-child(2n){--n:7}[data-motif=errors] .art i{height:var(--h,45%);border-radius:2px 2px 0 0}[data-motif=errors] .art i:nth-child(3n){--h:85%}[data-motif=events] .art i{height:var(--h,65%);border-radius:30px}[data-motif=events] .art i:nth-child(2n){--h:28%}[data-motif=search] .art{flex-direction:column;align-items:stretch;gap:3px}[data-motif=search] .art i{height:6px;max-width:none;width:var(--w,88%);border:0;border-radius:10px}[data-motif=search] .art i:nth-child(3n){--w:58%}[data-motif=tiles] .art{display:grid;grid-template-columns:repeat(4,min(9vw,42px));grid-template-rows:repeat(2,1fr);justify-content:center}[data-motif=tiles] .art i{width:100%;height:100%;border-radius:4px}
js
const slider=document.getElementById('usage-slider'),amount=document.getElementById('amount'),volume=document.getElementById('volume'),costEl=document.getElementById('cost'),fill=document.getElementById('fill'),shapes=[...document.querySelectorAll('.art i')];const steps=[0,3000,50000,100000,500000,2500000],cap=3000000,free=3000,unit="emails/mo";let index=0,timer;function draw(n){const cost=(n<=3000?0:Math.min(...[[50000,20,0.9],[100000,35,0.9],[100000,90,0.9],[200000,160,0.8],[500000,350,0.7],[1000000,650,0.65],[1500000,825,0.52],[2500000,1150,0.46]].map(([included,base,rate])=>base+Math.ceil(Math.max(0,n-included)/1000)*rate)));slider.value=String(n);amount.textContent=n.toLocaleString()+' '+unit;volume.textContent=n<=free?Math.round(n/free*100)+'% of free tier':'+'+(n-free).toLocaleString()+' over free';costEl.textContent=cost===null?"price unpublished":'$'+cost.toLocaleString('en-US',{maximumFractionDigits:2});costEl.classList.toggle('unknown',cost===null);fill.style.width=Math.min(100,n/free*100)+'%';fill.style.background=n>free?'var(--accent-3)':'var(--accent-2)';shapes.forEach((shape,i)=>shape.classList.toggle('on',i<Math.max(0,Math.ceil(n/cap*shapes.length))))}draw(steps[0]);timer=setInterval(()=>{index=(index+1)%steps.length;draw(steps[index])},1100);slider.addEventListener('input',()=>{clearInterval(timer);draw(Number(slider.value))})

Resend는 앱에서 인증 코드·알림 같은 트랜잭션 메일을 보내는 API입니다. 개발자 경험과 템플릿 제작 흐름을 중시할 때 고릅니다.

2026-10 기준 Free는 3,000통/월·100통/일입니다. Pro는 50,000통 선택 시 $20/월, 100,000통 선택 시 $35/월입니다. Scale은 선택 포함량 100,000–2,500,000통에 따라 $90–$1,150/월이며 초과 단가는 $0.90–$0.46/1,000통입니다. 유료 플랜에서 pay-as-you-go를 켜면 초과분을 1,000통 단위로 올림해 청구합니다.

무료 플랜의 일일 제한 때문에 월 3,000통을 하루에 몰아 보낼 수 없습니다. 수신 메일도 transactional 한도에 포함되고 broadcast 메일은 별도 상품입니다. 데모는 공개된 티어 중 가장 낮은 월 비용을 보여줍니다.

언제 쓰나

앱 메일 API를 빠르게 붙일 때 적합합니다. Postmark와는 일일 무료 제한, 월 기본료, 초과 단가를 비교하세요.

페이지로 열기 ↗