mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-18 16:01:40 +03:00
7b761a8751
no issue Adds new canary api endpoint, currently replicating v2 endpoint but paving way for future updates to new version
61 lines
1.7 KiB
JavaScript
61 lines
1.7 KiB
JavaScript
const Promise = require('bluebird');
|
|
const common = require('../../lib/common');
|
|
const mailService = require('../../services/mail');
|
|
const api = require('./');
|
|
let mailer;
|
|
let _private = {};
|
|
|
|
_private.sendMail = (object) => {
|
|
if (!(mailer instanceof mailService.GhostMailer)) {
|
|
mailer = new mailService.GhostMailer();
|
|
}
|
|
|
|
return mailer.send(object.mail[0].message).catch((err) => {
|
|
if (mailer.state.usingDirect) {
|
|
api.notifications.add(
|
|
{
|
|
notifications: [{
|
|
type: 'warn',
|
|
message: [
|
|
common.i18n.t('warnings.index.unableToSendEmail'),
|
|
common.i18n.t('common.seeLinkForInstructions', {link: 'https://ghost.org/docs/concepts/config/#mail'})
|
|
].join(' ')
|
|
}]
|
|
},
|
|
{context: {internal: true}}
|
|
);
|
|
}
|
|
|
|
return Promise.reject(err);
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
docName: 'mail',
|
|
|
|
send: {
|
|
permissions: true,
|
|
query(frame) {
|
|
return _private.sendMail(frame.data);
|
|
}
|
|
},
|
|
|
|
sendTest(frame) {
|
|
return mailService.utils.generateContent({template: 'test'})
|
|
.then((content) => {
|
|
const payload = {
|
|
mail: [{
|
|
message: {
|
|
to: frame.user.get('email'),
|
|
subject: common.i18n.t('common.api.mail.testGhostEmail'),
|
|
html: content.html,
|
|
text: content.text
|
|
}
|
|
}]
|
|
};
|
|
|
|
return _private.sendMail(payload);
|
|
});
|
|
}
|
|
};
|