Nodejs发邮件组件Nodemailer
Nodejs发邮件组件Nodemailer
前言:
电子邮件,是互联网应用最广泛使用的服务之一,通过电子邮件系统,我们可以与世界上任何一个角落的网络用户进行联系。
使用Nodejs收发电子邮件也非常简单,Nodemailer包就可以帮助快速实现发邮件的功能。
文章目录:
- Nodemailer包介绍
- 使用Nodemailer发邮件
- 发邮件的高级使用
请查看博客文章
Nodejs发邮件组件Nodemailer
前言:
电子邮件是互联网中非常常见的一种通讯方式。通过电子邮件系统,我们可以方便地发送和接收信息。使用Node.js来实现发送邮件的功能也变得非常简单,借助于Nodemailer这个强大的库,你可以轻松地将邮件发送到世界的任何一个角落。
文章目录:
- Nodemailer包介绍
- 使用Nodemailer发邮件
- 发邮件的高级使用
1. Nodemailer包介绍
Nodemailer是一个用于发送邮件的Node.js模块。它支持SMTP协议,可以发送带有附件、HTML内容以及各种类型附件的邮件。Nodemailer还提供了丰富的配置选项,使得邮件发送变得更加灵活。
安装Nodemailer:
npm install nodemailer
2. 使用Nodemailer发邮件
下面是一个简单的示例,展示如何使用Nodemailer发送一封基本的文本邮件:
const nodemailer = require('nodemailer');
// 创建一个SMTP传输对象
let transporter = nodemailer.createTransport({
host: 'smtp.example.com',
port: 587,
secure: false, // 使用普通连接
auth: {
user: 'your-email@example.com', // 发件人邮箱
pass: 'your-password' // 发件人邮箱密码或授权码
}
});
// 邮件信息
let mailOptions = {
from: '"Sender Name" <sender@example.com>', // 发件人
to: 'receiver@example.com', // 收件人
subject: 'Hello ✔', // 邮件主题
text: 'Hello world!', // 纯文本正文
html: '<b>Hello world!</b>' // HTML正文
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
});
3. 发邮件的高级使用
Nodemailer还支持发送带有附件的邮件。以下是一个包含附件的邮件发送示例:
let mailOptions = {
from: '"Sender Name" <sender@example.com>',
to: 'receiver@example.com',
subject: 'Hello ✔',
text: 'Hello world!',
html: '<b>Hello world!</b>',
attachments: [
{ // 文件路径
filename: 'test.txt',
path: '/path/to/file.txt'
},
{ // 数据流
filename: 'text.txt',
content: new Buffer('hello world')
}
]
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
});
以上就是使用Nodemailer发送邮件的基本用法和一些高级功能。希望这些示例能帮助你更好地理解和使用Nodemailer。更多详细的文档可以参考Nodemailer官方文档。
卧槽,作者这么高产?
之前用过,新版本有问题,后来改成0.7.1版本才可以正常发送。
真应该为楼主搞个精品贴功能出来,然后在主题列表中高亮出来。(已经预备开发了…)
我最不擅长写这种基础教程
问下楼主。我用这个发的时候,是用的QQ邮箱发。但是QQ邮箱有限制,不能在短时间内发很多邮件,这个怎么破???
我使用QQ邮件服务器,开启了smtp。但是出现535错误:Invalid login - 535 Authentication failed
正在做这个Node发送邮件的功能 遇到很多坑
Nodejs发邮件组件Nodemailer
前言:
电子邮件是互联网中最常用的服务之一。使用Node.js发送电子邮件非常简单,只需借助Nodemailer库即可。
文章目录:
- Nodemailer包介绍
- 使用Nodemailer发邮件
- 发邮件的高级使用
1. Nodemailer包介绍
Nodemailer 是一个用于发送电子邮件的Node.js模块。它支持多种邮件服务提供商,并且使用起来非常简单。你可以通过npm来安装Nodemailer:
npm install nodemailer
2. 使用Nodemailer发邮件
以下是一个简单的示例,展示如何使用Nodemailer发送一封基本的邮件:
const nodemailer = require('nodemailer');
// 创建一个SMTP传输对象
let transporter = nodemailer.createTransport({
host: 'smtp.example.com',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: 'your-email@example.com', // 用户名
pass: 'your-password' // 密码
}
});
// 邮件信息
let mailOptions = {
from: '"Fred Foo" <foo@blurdybloop.com>', // 发件人
to: 'bar@blurdybloop.com, baz@blurdybloop.com', // 收件人列表
subject: 'Hello ✔', // 主题
text: 'Hello world?', // 纯文本正文
html: '<b>Hello world?</b>' // HTML正文
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
});
3. 发邮件的高级使用
除了基本的邮件发送,Nodemailer还提供了许多高级功能,例如附件、HTML模板、SSL/TLS安全连接等。这里举一个带附件的例子:
let mailOptions = {
from: '"Fred Foo" <foo@blurdybloop.com>',
to: 'bar@blurdybloop.com',
subject: 'Hello',
text: 'Hello world?',
html: '<b>Hello world?</b>',
attachments: [
{ // 发送文件
filename: 'text.txt',
path: '/path/to/file.txt' // 文件路径
},
{ // 发送base64编码的数据
filename: 'picture.jpg',
content: Buffer.from("iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAClJSURBVEhL7ZVBCsIwEIZ/9Kk9MfQg+1JkQ4G0m0iCJiQr4HqQXoJ9A0tG3JjYF15G0lBdQ11gT9Dg619Pjy7UuL08e881fO7f3nXfMmZqU84vPfW5n8fP7+X79u3Xn/8f319fXf3589fXfH39+e63vz+fnPf79vPnz+/78++/v746fPv755+/Pj4+fP39//v74+Pf399fX19//v7+8+f//8+fP39+/f//9+/f///78/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f///7+/f