Node.js 使用NodeEmailer发送电子邮件,使用firebase功能发送自定义电子邮件,而不是gmail

Node.js 使用NodeEmailer发送电子邮件,使用firebase功能发送自定义电子邮件,而不是gmail,node.js,angular,firebase,nodemailer,google-cloud-functions,Node.js,Angular,Firebase,Nodemailer,Google Cloud Functions,我正在尝试发送一封简单的电子邮件,其中包含Firebase的NodeEmailer和云功能,而不是GMAIL。我使用我的GoDaddy电子邮件服务器,但Firebase控制台的云功能出现以下错误: { Error: getaddrinfo ENOTFOUND mail.square-boat.gr mail.square-boat.gr:587 at errnoException (dns.js:28:10) at GetAddrInfoReqWrap.onloo

我正在尝试发送一封简单的电子邮件,其中包含Firebase的NodeEmailer和云功能,而不是GMAIL。我使用我的GoDaddy电子邮件服务器,但Firebase控制台的云功能出现以下错误:

{ Error: getaddrinfo ENOTFOUND mail.square-boat.gr mail.square-boat.gr:587
        at errnoException (dns.js:28:10)
        at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
      code: 'ECONNECTION',
      errno: 'ENOTFOUND',
      syscall: 'getaddrinfo',
      hostname: 'mail.square-boat.gr',
      host: 'mail.square-boat.gr',
      port: '587',
      command: 'CONN' }
这是index.js上函数的代码:

const mailTransport = nodemailer.createTransport({

  host: 'mail.square-boat.gr',
  auth: {
    user: 'info@square-boat.gr',
    pass: 'xxxxx!'
  },
  secure: false, // use TLS
  port : '587'

});


exports.sendContactMessage = functions.database.ref('/emails/{pushKey}').onWrite(event => {

  const snapshot = event.data;

  // Only send email for new messages.
  if (snapshot.previous.val() || !snapshot.val().name) {
    return;
  }

  const val = snapshot.val();

  const mailOptions = {
    from: 'test@example.com',
    to: 'test@example.com',
    subject: `Information Request from ${val.name}`,
    html: val.html
  };

  return mailTransport.sendMail(mailOptions).then(() => {
    return console.log('Mail sent to: test@example.com')
  }).catch( error => {
    console.log(error);
  });

});

你在使用免费计划吗?它将出站网络请求仅限于谷歌服务。是的,我使用sparkbob,如果我转到下一个firebase计划,这是100%的。你需要转到付费计划。我没有使用外部邮件传输,也不能说你的代码是否正确。它可能需要一些改变,但你应该能够让它工作。你正在使用免费计划吗?它将出站网络请求仅限于谷歌服务。是的,我使用sparkbob,如果我转到下一个firebase计划,这是100%的。你需要转到付费计划。我没有使用外部邮件传输,也不能说你的代码是否正确。它可能需要一些更改,但您应该能够使其正常工作。