• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nodemailer nie wysyła meila po produkcji na now.sh oraz heroku

Object Storage Arubacloud
0 głosów
244 wizyt
pytanie zadane 28 kwietnia 2020 w JavaScript przez wallgravve Nowicjusz (200 p.)
edycja 28 kwietnia 2020 przez wallgravve

Cześć,

mam formularz kontaktowy w mojej apce, który działa w wersji developerskiej, natomiast po deployu na heroku i now.sh już nie 

Handler ze strony do wysłania na serwer (tutaj jest raqczej dobrze bo wiadomość dochodzi na server, bo dostaje response status 200: 

    axios({
      method: "post",
      url: "https://web-to-print-next-js-git-now.melotek.now.sh/api/order",
      headers: { "content-type": "application/json",
       },
      data: {

na serwerze próbowałem wcześniej używać tylko nodemailera z ustawieniami smtp, i wszystko chulało, teraz wspomagam się sendgridem, ale nie pomaga, serwer ogólnie chula bo działa odświerzanie dynamicznych stron, ale meila po deployu jak nie chciał tak dalej nie chce wysłać. Kod trochę długi:

const express = require("express");
const next = require("next");
const fetch = require("node-fetch");
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const bodyParser = require("body-parser");
const handle = app.getRequestHandler();
const server = express();
const cors = require("cors");
const fileUpload = require('express-fileupload');
const smtpTransport = require('nodemailer-smtp-transport');
const path = require('path');
const sgTransport = require('nodemailer-sendgrid-transport');

const nodemailer = require('nodemailer');
const inlineBase64 = require('nodemailer-plugin-inline-base64');


const PORT = process.env.PORT || 3000;
server.use(cors({ origin: PORT }));
server.use('/public', express.static(path.join(__dirname, 'public')))

app
  .prepare()
  .then(() => {
    server.listen(PORT || 3000, err => {
      if (err) throw err;
      console.log(`> Ready on http://localhost:${PORT}`);
    });
  })

  .catch(ex => {
    console.error(ex.stack);
    process.exit(1);
  });


server.use(bodyParser.json({limit: '50mb', extended: true}));
server.use(bodyParser.urlencoded({ limit: '50mb', extended: true}));

server.use(function(request, response, next) {
  response.header("Access-Control-Allow-Origin", "*");
  response.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});
.....

server.post("/api/order", async (request, response) => {
const options = {
    auth: {
        api_key: process.env.SENDGRID_API_KEY
}
const mailer = nodemailer.createTransport(sgTransport(options));
      mailer.use('compile', inlineBase64({cidPrefix: 'somePrefix_'}));
      mailer.use('/public', express.static('public'));

const message = {
    to: `${email}`,
    from: 'wallgravve88@wp.pl',
        subject: `Fototapeta od Fotodream, numer zamówienia: ${OrderId}`,
        forceEmbeddedImages: true,
        bcc: ['allegro@fotodream.shop', 'allegro@fotodream.pl', 'wallgravve88@wp.pl'],
        html: `<body><body>'
    mailer.sendMail(message, function(err, res) {
    if (err) { 
        console.log(err) 
    }
    console.log(res);
});
});



server.get("*", (req, res) => {
  return handle(req, res);
});

Czy to jest problem z moim kodem, a może darmowe hostingi mają jakieś blokady? Będę wdzięczny z podzielenie się swoimi doświadczeniami. A płacę złotem za rozwiązanie problemu.

1 odpowiedź

0 głosów
odpowiedź 23 czerwca 2021 przez niezalogowany


Miałem bardzo podobny problem z gmail ale rozwiązałem go pomógł stack wink

https://stackoverflow.com/questions/25693280/nodemailer-with-gmail-service-not-working-on-heroku

Mam nadzieję że okaże się pomocne.

Powodzenia smileyyes

Podobne pytania

0 głosów
1 odpowiedź 316 wizyt
pytanie zadane 5 lutego 2020 w Hostingi, domeny, usługi przez Mariusz Podgórski Początkujący (400 p.)
0 głosów
0 odpowiedzi 78 wizyt
pytanie zadane 1 maja 2020 w JavaScript przez mateusz.zajac Obywatel (1,460 p.)
0 głosów
0 odpowiedzi 105 wizyt
pytanie zadane 22 kwietnia 2019 w Java przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...