2016-08-26 8 views
0

Я пытаюсь отправить вложение с помощью nodemailer 0.7.1. Вложение отправлено отлично, но когда я пытаюсь его открыть, на экране появляется сообщение OPRING FILE.Приложение Nodemailer не работает в nodemailer 0.7.1

Вот мой код:

var nodemailer = require("nodemailer"); 

var transport = nodemailer.createTransport("SMTP", { 
    host: "smtp.gmail.com", // hostname 
    secureConnection: true, // use SSL 
    port: <port>, // port for secure SMTP 
    auth: { 
     user: "[email protected]", 
     pass: "password" 
    } 
}); 

console.log("SMTP Configured"); 

var mailOptions = { 
    from: '[email protected]', // sender address 
    to: '[email protected]', // list of receivers 
    subject: 'Report for Test Result', // Subject line 
    text: 'Contains the test result for the test run in html file', // plaintext body 
    attachments: [ 
     { 
      'filename': 'results.txt', 
      'filePath': './result/results.txt', 
     } 

    ] 
}; 
transport.sendMail(mailOptions, function (error, response) { 
    if (error) { 
     console.log(error); 
    } else { 
     console.log("Message sent: " + response.message); 
    } 

}); 

Любое предложение о том, как решить эту проблему было бы большим подспорьем.

ответ

0

Замените линии filename и filePath на path: './result/results.txt' и попробуйте.

0

Попробуйте этот код. Сначала вам нужно создать приложение в Google Cloud Console и включить API Gmail из библиотеки. Получить учетные данные вашего приложения. Для этого нажмите «Учетные данные» и вместо Авторизованного перенаправления URI пройдите по этой ссылке https://developers.google.com/oauthplayground и сохраните его. Далее в другой вкладке откройте эту ссылку https://developers.google.com/oauthplayground/ нажмите на значок настроек справа. И установите галочку (то есть, используйте свои собственные учетные данные OAuth) после этого вы должны предоставить свой clientId и clientSecret. И в свое время на левой стороне есть текстовое поле с заполнителем, например «Ввод собственных областей», держите эту ссылку https://mail.google.com/ и нажмите «Авторизовать API», затем нажмите «Код авторизации Exchange» для токенов, после чего вы получите свой refreshToken и accessToken, сохраните эти два в своем коде. Надеемся, что thsi помогает вам ..

const nodemailer=require('nodemailer'); 
const xoauth2=require('xoauth2'); 
var fs=require('fs'); 
var transporter=nodemailer.createTransport({ 
service:'gmail', 
auth:{ 
    type: 'OAuth2', 
    user:'Sender Mail', 
clientId:'Your_clientId',//get from Google Cloud Console 
clientSecret:'Your clientSecret',//get from Google Cloud Console 
refreshToken:'Your refreshToken',//get from https://developers.google.com/oauthplayground 
accessToken:'Tor accessToken'//get from https://developers.google.com/oauthplayground 
}, 
}); 
fs.readFile("filePath",function(err,data){ 
var mailOptions={ 
from:' <Sender mail>', 
to:'receiver mail', 
subject:'Sample mail', 
text:'Hello!!!!!!!!!!!!!', 
attachments:[ 
{ 
    'filename':'filename.extension',//metion the filename with extension 
    'content': data, 
    'contentType':'application/type'//type indicates file type like pdf,jpg,... 
}] 
} 
transporter.sendMail(mailOptions,function(err,res){ 
if(err){ 
    console.log('Error'); 
} 
else{ 
console.log('Email Sent'); 
} 
}) 
}); 
Смежные вопросы