рдореИрдВ url рдХреЛ рдИрдореЗрд▓ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬреИрд╕реЗ рдХрд┐ рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдкреАрдбреАрдПрдл рдпреВрдЖрд░рдПрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдпрд╛ рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рдирд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рд╣рд╛рдп @ рд╢рд░реЛрдЦреНрдирдирдХрд╛рди ,
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг
рдзрдиреНрдпрд╡рд╛рдж!
рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,
рдПрд▓реНрдорд░
@thinkingsouble рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреАрдбреАрдНрдлрд╝ url рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рд╛ рдФрд░ рдореЗрд▓ рд╕реЗ рдЬреЛрдбрд╝рд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ!
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣реИ :)
рдзрдиреНрдпрд╡рд╛рдж
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
var download = require('download-file'),
fs = require('fs'),
array = [],
temp = [],
files = [];
array.push('https://www.antennahouse.com/XSLsample/pdf/sample-link_1.pdf');
array.push('https://www.antennahouse.com/XSLsample/pdf/sample-link_1.pdf');
array.push('https://www.antennahouse.com/XSLsample/pdf/sample-link_1.pdf');
array.forEach(function(url) {
temp++;
var options = {
directory: "./pdf",
filename: temp.toString() + Date.now() + ".pdf"
};
download(url, options, function(err, res) {
console.log( __dirname + '/pdf/' + options.filename );
files.push(res);
if ( array.length == files.length ) {
// console.log( "hello" );
var counter = 0,
attach = [];
files.forEach( function(name, index) {
name = name.substring(1, name.length );
fs.readFile(__dirname + name, function(err, file) {
console.log( file );
var base64File = new Buffer(file).toString('base64');
counter++;
attach.push({
content : base64File,
filename : 'Report.pdf'
});
console.log( attach );
const msg = {
to: '[email protected]',
from: '[email protected]',
subject: 'Test',
text: 'this is test',
html: '<strong>Hello World</strong>',
attachments: attach,
};
// console.log( msg );
if ( counter == files.length )
sgMail.send(msg);
});
});
}
});
});
рдирдорд╕реНрдХрд╛рд░ @ShhrokhNiakan ,
рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдХреИрд╕реЗ url рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрд╕рд╛ рд╣реИ ?
рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,
рдПрд▓реНрдорд░
@thinkingsouble рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХрднреА-рдХрднреА рдареАрдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдореЗрд▓ рдЕрдиреБрд▓рдЧреНрдирдХ рдореЗрдВ рдкрдардиреАрдп рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдЬреА рд╢реБрдХреНрд░рд┐рдпрд╛
request = require('request');
request.get( url, function(err, res) {
var base64File = new Buffer(res.body).toString('base64');
...
});
рд╣рд╛рдп @ рд╢рд░реЛрдЦреНрдирдирдХрд╛рди ,
рдХреНрдпрд╛ рдЖрдк рдПрдХ рд╣реА рдкреАрдбреАрдПрдл рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдкреАрдбреАрдПрдл рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рд╕реНрд░реЛрдд рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдкреАрдбреАрдПрдл рджреВрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ?
рд╣рд╛рдп рдкреНрд░рд┐рдп @thinkings рд░рд╣рд╕реНрдпрдордп
рдореИрдВрдиреЗ рдиреАрдЪреЗ рдЗрди PDF рд▓рд┐рдВрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛:
http://www.africau.edu/images/default/sample.pdf
http://www.pdf995.com/samples/pdf.pdf
https://www.ets.org/Media/Tests/GRE/pdf/gre_research_validity_data.pdf
рд╣рд╛рдп @ рд╢рд░реЛрдЦреНрдирдирдХрд╛рди ,
рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдЕрдм рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдмреИрдХрд▓реЙрдЧ рдкрд░ рд╣реИред
рдорддрд▓рдм рд╕рдордп рдореЗрдВ рдПрдХ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╢рд╛рдпрдж рдЖрдк рдЖрдХрд╛рд░ рд╕реАрдорд╛рдУрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓ рд░рд╣реЗ
рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,
рдПрд▓реНрдорд░
@ShahrokhNiakan рдЪреВрдВрдХрд┐ рдкреАрдбреАрдПрдл рдмрд╛рдЗрдирд░реА рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ encoding: null
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЕрдиреБрд░реЛрдз рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрд╕реЗ utf-8 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧреАред
рдЬреИрд╕реЗ:
request = require('request');
request.get( url, { encoding: null } function(err, res) {
var base64File = new Buffer(res.body).toString('base64');
...
});
рдЕрдиреБрд░реЛрдз рдХреЗ
рдПрдиреНрдХреЛрдбрд┐рдВрдЧ - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдЯрдЗрдиреНрдХреЛрдбрд┐рдВрдЧ рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧред рдпрджрд┐ рдЕрд╢рдХреНрдд, рд╢рд░реАрд░ рдПрдХ рдмрдлрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред рдХреБрдЫ рднреА (рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореВрд▓реНрдп рд╕рд╣рд┐рдд) рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ () (рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ utf8 рд╣реИ)ред (рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдбреЗрдЯрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдЕрд╢рдХреНрддред )
@brafdlog рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛! рдзрдиреНрдпрд╡рд╛рдж!
рдкрд╣рд▓реЗ SendGrid рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрдиреБрд▓рдЧреНрдирдХреЛрдВ рдХреЗ рд▓рд┐рдП URL рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдерд╛ред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред рд╣рд░ рдкреНрд░реЗрд╖рдХ рдХреЛ рднрд╛рд░реА рдмреЗрд╕ 64 рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдХреНрдпреЛрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред Sendgrid рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ShahrokhNiakan рдЪреВрдВрдХрд┐ рдкреАрдбреАрдПрдл рдмрд╛рдЗрдирд░реА рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ
encoding: null
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЕрдиреБрд░реЛрдз рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрд╕реЗ utf-8 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧреАредрдЬреИрд╕реЗ:
рдЕрдиреБрд░реЛрдз рдХреЗ