• 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

0 głosów
175 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ź 149 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 38 wizyt
pytanie zadane 1 maja 2020 w JavaScript przez mateusz.zajac Obywatel (1,460 p.)
0 głosów
0 odpowiedzi 68 wizyt

86,526 zapytań

135,279 odpowiedzi

300,595 komentarzy

57,276 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...