Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 30 02:38
    RolandVrignon commented #611
  • Nov 28 10:51
    Vincze01 opened #1353
  • Nov 26 10:05

    andris9 on v6.7.2

    (compare)

  • Nov 26 10:05

    andris9 on master

    v6.7.2 (compare)

  • Nov 24 07:35
    Zahirmasoodi opened #1352
  • Nov 22 13:04
    calldeludo edited #1351
  • Nov 22 12:59
    calldeludo edited #1351
  • Nov 22 12:59
    calldeludo opened #1351
  • Nov 17 07:31
    gudulangzi07 opened #1350
  • Nov 16 09:55
    shalvy commented #1321
  • Nov 15 07:09
    abhi141 opened #1349
  • Nov 15 07:01

    andris9 on v6.7.1

    (compare)

  • Nov 15 07:01

    andris9 on master

    v6.7.1 (compare)

  • Nov 10 17:37
    cookersjs opened #1348
  • Nov 08 04:57
    priyapatillilly commented #1218
  • Nov 05 16:32
    Oleks777 commented #1218
  • Nov 04 15:02
    markb-trustifi commented #1024
  • Nov 04 11:22
    andris9 closed #1345
  • Nov 04 11:22
    andris9 closed #1295
  • Nov 04 11:22
    andris9 commented #1347
safalt
@safalt
Hi guys, On localhost mailer service is working fine but when i deployed on server it's giving me error like
Hostname/IP does not match certificate's altnames: Host: smtp.gmail.com. is not in the cert's altnames
Andris Reinman
@andris9
you probably have a MITM somewhere, either your company firewall or a virus scanner. Gmail MTA most definitely has a valid cert.
Tommy
@tommymaher15

Hey guys. I'm looking to send a string as text as it stores a link to a csv file.

Unsure how to do this correctly

Can anyone recommend the best way to do this?
RajTh
@RajTh
Hi Team
I am facing issue for the below code:

import as fs from 'fs';
import
as _ from 'lodash';
import {browser} from "protractor";

let retry = require('retry'),
googleAuth = require('google-auth-library'),
google = require('googleapis'),
gmail = google.gmail('v1');

export class GmailHelper {
// Getting an auth object
static getAuth() {
let auth = new googleAuth(),
oauth2Client = new auth.OAuth2(
myCreds.client_id,
myCreds.client_secret,
myCreds.redirect_uris[0]
),
oauth2Client.credentials = {"client_id": "159ab9cfa0b5f30e",};
return oauth2Client;
}

// Converts the query passed as an object into a string
private static convertQuery(query: any): string {
    return _.map(query, (operator, item) => `${item}:${operator}`).join(' ');
}

// Retrieve a list of emails, matching the specified query,  from the authenticated inbox. The query is an object like: {from: ''}
async searchForEmails(query: any): Promise<Array<any>> {
    const res_1 = await this.googleCallWrapper((cb: any) => {
        gmail.users.messages.list({
            auth: GmailHelper.getAuth(),
            userId: 'me',
            q: GmailHelper.convertQuery(query)
        }, cb);
    }, (err: any, res: { messages: any; }) => {
        return err ? err : res.messages == undefined;
    });
    return res_1.messages;
}

// Retrieve the full data of a specific email from the authenticated inbox
async getEmailContent(id: any): Promise<any> {
    const res_1 = await this.googleCallWrapper((cb: any) => {
        gmail.users.messages.get({
            auth: GmailHelper.getAuth(),
            userId: 'me',
            id: id
        }, cb);
    }, (err: any, res: any) => {
        return err;
    });
    return res_1;
}

// Wraps all types of gmail calls into promise notation and retries the call x number of times with a scaling up timeout
// Also performs `browser.waitForAngular()` before the call in order to allow the operation on the page to finish before 
// checking for the email
/**
* @param googleCall {Function(googleCallback: Function) : Void} a function which performs a GoogleAPI call. When called, it is passed a GoogleAPI callback function which needs to be passed to the GoogleAPI
* @param shouldRetry {Function(error: string, response: Object) : boolean} a function which decides whether we should retry the GoogleAPI call. When called, it is passed the same arguments as the GoogleAPI callback function. It should return true if an error occurred or if the response is not satisfactory
**/
googleCallWrapper(googleCall: Function, shouldRetry: Function): Promise<any> {
    return new Promise(async (resolve, reject) => {
        let operation = retry.operation({
            retries: 4,
            minTimeout: 1000,
            maxTimeout: 3000,
            factor: 1.5,
        });
        try {
            await browser.waitForAngular();
            return operation.attempt(function (currentAttempt: any) {
                googleCall((err: any, res: any) => {
                    if (operation.retry(shouldRetry(err, res))) {
                        console.log('Retrying the email check');
                        return;
                    }
                    if (err) {
                        console.log('Email not found!');
                        reject(err);
                    } else {
                        console.log('Email found!');
                        resolve(res);
                    }
                });
            });
        } catch (err_1) {
            reject(err_1);
        }
    })
}

}

Issue part is:
static getAuth() {
    let auth = new googleAuth(),
        oauth2Client = new auth.OAuth2(
            myCreds.client_id,
            myCreds.client_secret,
            myCreds.redirect_uris[0]
        ),
    oauth2Client.credentials = {"client_id": "159ab9cfa0b5f30e",};
    return oauth2Client;
}
please help!
Daniel Mulvad
@danielmulvad
Howdy guys, I'm sure this has been asked before, but I can't seem to find the answer online. I cannot send emails when running nodemailer in a alpine-node docker container.
here is my config:
    const mail = nodemailer.createTransport({
      host: 'smtp.office365.com',
      port: 587,
      secure: false,
      auth: {
        user: process.env.SMTP_USERNAME,
        pass: process.env.SMTP_PASSWORD
      }
    })
this is my error:
mail error:  Connection timeout {"code":"ETIMEDOUT","command":"CONN","stack":"Error: Connection timeout\n    at SMTPConnection._formatError (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:19)\n    at SMTPConnection._onError (/app/node_modules/nodemailer/lib/smtp-connection/index.js:760:20)\n    at Timeout.<anonymous> (/app/node_modules/nodemailer/lib/smtp-connection/index.js:229:22)\n    at listOnTimeout (node:internal/timers:556:17)\n    at processTimers (node:internal/timers:499:7)","timestamp":"2021-02-01 19:19:49"}
Daniel Mulvad
@danielmulvad
I've read the documentation that says: Check your firewall settings. Timeout usually occurs when you try to open a connection to a port that is firewalled either on the server or on your machine. but the ports are open in docker
xingnan923
@xingnan923
Hello, Everyone.
I got some error when I try to send email by gmail.
ERROR Error: connect ETIMEDOUT 74.125.131.108:587
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) {
errno: -4039,
code: 'ESOCKET',
syscall: 'connect',
address: '74.125.131.108',
port: 587,
command: 'CONN'
}
This is error message.
Please help me to solve this problem.
Subhrajyoti Pradhan
@subhrajyotiw5rtc
Hi

I am getting this error while trying to send email via nodemailer.

{
"code": "EDNS",
"errno": "ENOTFOUND",
"syscall": "getaddrinfo",
"hostname": "aaa.bbb.aro.com.br",
"command": "CONN"
}

Can anybody help me to resolve this ?
RamiroAisen
@ramiroaisen
I think your problem is that DNS is not resolving to that host, try dig aaa.bbb.aro.com.br to check that
RamiroAisen
@ramiroaisen
Hello, I'm having an issue with gmail and nodemailer, I'm connecting using imap.gmail.com and Application Passwords, the script connect successfully, it passes de verifyOnly check but when i do fetch({ address: "some@address.com" }) it fails with Command failed error, no more output than that :(, can anyone help me?
I'm using imapflow, not nodemailer, sorry