在 Web 开发中,发送邮件是非常常见的操作。nodemailer-plugin-sign-s3-attachment-urls 是一个 npm 包,可以让我们在发送邮件时,将附件上传到 Amazon S3 中,并自动签名 URL,让收件人能够下载附件。
本篇文章将会教你如何使用 nodemailer-plugin-sign-s3-attachment-urls,包括安装依赖、配置 AWS S3 和邮箱账户,以及给出一些示例代码。
安装依赖
首先,我们需要安装 nodemailer-plugin-sign-s3-attachment-urls 以及其依赖 nodemailer 和 aws-sdk:
npm install nodemailer-plugin-sign-s3-attachment-urls nodemailer aws-sdk
配置 AWS S3
在使用 nodemailer-plugin-sign-s3-attachment-urls 前,我们需要配置 AWS S3。我们需要一个存储桶(bucket)以及相应的访问密钥(access key)和密钥(secret key)。
创建存储桶
在 AWS S3 控制台中,选择“创建存储桶”。输入桶名称、选择区域,然后创建即可。
创建 IAM 用户
在 AWS IAM 控制台中,选择“创建用户”。为该用户添加属性,选择编程访问,然后授权 S3。
获取访问密钥和密钥
在创建 IAM 用户后,可以在该用户的页面中获取访问密钥和密钥。
配置邮箱账户
在使用 nodemailer-plugin-sign-s3-attachment-urls 发送邮件前,需要配置一个邮箱账户。以 Gmail 为例,我们需要配置以下信息:
-- -------------------- ---- ------- - ----- ----------------- ----- ---- ------- ----- ----- - ----- ----------------------- ----- --------------- - -
其中,user 和 pass 分别为你的 Gmail 邮箱地址和密码。
使用 nodemailer-plugin-sign-s3-attachment-urls
npm 包 nodemailer-plugin-sign-s3-attachment-urls 可以作为 nodemailer 的 plugin 来使用。我们需要初始化 nodemailer,并添加 signS3AttachmentUrls 插件。
-- -------------------- ---- ------- ----- ---------- - ---------------------- ----- -------------------- - ----------------------------------------------------- ----- ----------- - ---------------------------- ----- ----------------- ----- ---- ------- ----- ----- - ----- ----------------------- ----- --------------- - --- -------------------------- ---------------------- ---- - ------- ------------ ------------ -------------------- ---------------- -------------------- ----------- -------------------- -- -------------- -- - -- - --- -- --- ---- --- ------------------- --------- -- ------------- ---- -- ----
这里我们在邮件发送前使用了 compile hook,将上传并签名好的 URL 添加到附件列表中。
接下来,我们可以定义邮件内容:
-- -------------------- ---- ------- ----- ------- - - ----- ----- ---- ------------------------ --- ----------------------- -------- ----- -- - ---- ------- ----- --------- ------------ ------------ - - ----- ------------------- - - --
这里我们定义了邮件的 “from”、”to”、”subject” 等信息,以及上传的附件的路径。
最后,我们发送这个邮件:
transporter.sendMail(message, (err, info) => { if (err) { console.log(err); } else { console.log(info); } });
这里我们调用 transporter.sendMail 方法发送邮件,如果发送成功,可在控制台中看到 info 信息。
结语
本篇文章介绍了如何使用 npm 包 nodemailer-plugin-sign-s3-attachment-urls 在邮件中添加 Amazon S3 签名附件,让接收者可安全下载。我们了解了如何配置 AWS S3 和邮箱账户,以及如何使用 nodemailer-plugin-sign-s3-attachment-urls 的示例代码。希望这些内容能有深度和学习以及指导意义,帮助你更好的开发 Web 项目。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600557ae81e8991b448d4b45