email
模块用于发送电子邮件,该模块中包含2个类:Dialer
、Message
Dialer
Dialer
表示发送电子邮件的配置,包括 SMTP 服务器的信息和相关的发送参数。它负责与 SMTP 服务器建立连接,并发送 Message
所表示的电子邮件
构造函数
语法
new Dialer(host:string,port:int,username:string,password:string)
参数
- host: SMTP服务器的主机名或 IP 地址
- port: SMTP服务器的端口号
- username: 用于身份验证的用户名
- password: 用于身份验证的密码
示例
import {Dialer} from "email"
//创建dialer对象
const dialer = new Dialer("smtpdm.aliyun.com", 465, "test@mail.vino.com", "123456")
send
Dialer对象通过send
方法来发送电子邮件。
语法
dialer.send(message:Message)
参数
- message:
Message
对象
示例
import {Dialer} from "email"
//创建dialer对象
const dialer = new Dialer("smtpdm.aliyun.com", 465, "test@mail.vino.com", "123456")
//发送message对象
dialer.send(message)
Message
Message
表示一封电子邮件消息。它包含电子邮件的各种部分,如发件人、收件人、主题、正文和附件等。通过这个结构体,可以构建和管理电子邮件的内容
构造函数
语法
new Message()
示例
const message = new Message()
对象的属性和方法
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
setHeader | 方法 | field:string,value:string | 设置邮件头部信息,如发件人、收件人、主题等 | |
setBody | 方法 | contentType:string,body:string | 设置邮件正文的内容及其类型 | |
addAlternative | 方法 | contentType:string,body:string | 设置邮件正文的替代内容 | |
attach | 方法 | file:string | 添加文件附件 | |
attachReader | 方法 | filename:string,reader:Reader | 附加文件流作为邮件附件 | |
embed | 方法 | file:string | 嵌入文件(通常是图片)到邮件正文中 | |
embedReader | 方法 | filename:string,reader:Reader | 嵌入文件流作为内嵌资源。 |
setHeader
设置邮件头部信息,如发件人、收件人、主题等
语法
message.setHeader(field:string,value:string)
参数
- field: 头部字段名称,如 "From", "To", "Subject"。
- value: 头部字段的值
示例
import {Message} from "email"
const message = new Message()
message.setHeader("From", "test@mail.vino.com")
setBody
设置邮件正文的内容及其类型
语法
message.setBody(contentType:string,body:string)
参数
- contentType: 内容类型,如 "text/plain" 或 "text/html"。
- body: 邮件正文内容
示例
import {Message} from "email"
const message = new Message()
message.setBody("text/plain", "你好。")
addAlternative
添加邮件正文的替代内容,例如同时提供 HTML 和纯文本版本的正文
语法
message.addAlternative(contentType:string,body:string)
参数
- contentType: 内容类型,如 "text/plain" 或 "text/html"。
- body: 邮件正文内容
示例
import {Message} from "email"
const message = new Message()
message.addAlternative("text/html", "<p>你好,这是html.</p>")
attach
添加文件附件
语法
message.attach(file:string)
参数
- file: 文件路径。
示例
import {Message} from "email"
const message = new Message()
message.attach("path/to/your/file.txt")
attachReader
附加文件流作为邮件附件
语法
message.attachReader(filename:string,reader:Reader)
参数
- filename: 文件名
- reader: 输入流对象
示例
import {Message} from "email";
import {fs} from "core";
let file = fs.openFile("/Desktop/1.txt");
const message = new Message();
message.attachReader(file.stat().name, file.read());
embed
嵌入文件(通常是图片)到邮件正文中
语法
message.embed(file:string)
参数
- file: 文件路径。
示例
import {Message} from "email"
const message = new Message()
message.embed("path/to/your/file.txt")
embedReader
嵌入文件流作为内嵌资源。
语法
message.embedReader(filename:string,reader:Reader)
参数
- filename: 文件名
- reader: 输入流对象
示例
import {Message} from "email"
import {fs} from "core"
let file = fs.openFile("/Desktop/1.txt");
const message = new Message()
message.embedReader("xxx.txt",file)
案例
import {Dialer, Message} from "email"
//创建dialer对象
const dialer = new Dialer("smtpdm.aliyun.com", 465, "test@mail.vino.com", "123456")
//创建message对象
const message = new Message()
//设置头
message.setHeader("From", "test@mail.vino.com")
message.setHeader("To", "test@vino.com")
message.setHeader("Subject", "主题")
message.setBody("text/plain", "你好.")
message.addAlternative("text/html", "<h1>你好</h1>")
//附件
message.attach("./excel.xlsx")
//图片
message.embed("./test.jpg")
//发送
dialer.send(message)