Deno SMTP mail client
This is a WIP fork of the (dead?) https://github.com/manyuanrong/deno-smtp to enable better mail sending!
The following additional API are added / planed:
- to multiple mails
- cc and bcc
- STARTTLS (Thanks to @dbellingroth)
- Attachments
- replyTo
- rewrite content with more options
- priority
- encoding tests (äöß,...) pending attachments
Allowed SingleMailFormat:
name@example.de
<name@example.de>
NAME <name@example.de>
{mail: "name@example.de"}
{mail: "name@example.de", name: "NAME"}
For to, cc, bcc you can provide one of the above OR a array of the above OR a object: {"NAME": "name@example.de"} where the name maps to the mail.
Example
import { SmtpClient } from "https://deno.land/x/smtp/mod.ts";
const client = new SmtpClient();
await client.connect({
hostname: "smtp.163.com",
port: 25,
username: "username",
password: "password",
});
await client.send({
from: "mailaddress@163.com",
to: "to-address@xx.com",
subject: "Mail Title",
content: "Mail Content",
html: "<a href='https://github.com'>Github</a>",
});
await client.close();
TLS connection
await client.connectTLS({
hostname: "smtp.163.com",
port: 465,
username: "username",
password: "password",
});
Use in Gmail
await client.connectTLS({
hostname: "smtp.gmail.com",
port: 465,
username: "your username",
password: "your password",
});
await client.send({
from: "someone@163.com", // Your Email address
to: "someone@xx.com", // Email address of the destination
subject: "Mail Title",
content: "Mail Content,maybe HTML",
});
await client.close();
Configuring your client
You can pass options to your client through the SmtpClient
constructor.
import { SmtpClient } from "https://deno.land/x/smtp/mod.ts";
//Defaults
const client = new SmtpClient({
content_encoding: "quoted-printable", // 7bit, 8bit, base64, binary, quoted-printable
});