• 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
202 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ź 213 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 43 wizyt
pytanie zadane 1 maja 2020 w JavaScript przez mateusz.zajac Obywatel (1,460 p.)
0 głosów
0 odpowiedzi 62 wizyt
pytanie zadane 22 kwietnia 2019 w Java przez YourDoom Bywalec (2,460 p.)

88,723 zapytań

137,335 odpowiedzi

306,831 komentarzy

58,909 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

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

...