cara mengirim email dalam fungsi firebase https melalui smtp sendiri [duplikat]

saya menghadapi beberapa perilaku aneh (bagi saya).
Saya mencoba membuat formulir umpan balik di aplikasi firebase saya
Ini adalah formulir sederhana yang akan mengirimi saya email ketika pengguna mengirimkannya.

Saya membuat fungsi onCall di aplikasi firebase saya.

Ketika saya mengujinya secara lokal melalui firebase experimental:functions:shell itu berfungsi dan saya menerima email, tetapi email yang diterapkan selalu gagal dengan:

{
code: "ECONNECTION"
command: "CONN"
errno: "ENOTFOUND"
}

badan fungsi:

function feedbacks(data)
{

    let email = createEmail(data);

    let transport = nodemailer.createTransport({
        host: 'smtp.yandex.ru',
        port: 465,
        secure: true,
        // tried this one, but without success too
        //tls:{ secureProtocol: "TLSv1_method" },
        auth: {
            user: 'xxxx@xxxx',
            pass: 'xxxx'
        }
    });

    return new Promise((resolve, reject) => {
        transport.sendMail(email, err => {
            if (err == null) {
                resolve(true);
            } else {
                reject(new functions.https.HttpsError('internal', 'failed', err))
            }
        });
    });

}

Tampaknya fungsi yang diterapkan tidak dapat mengakses server smtp karena beberapa batasan firebase saya tidak tahu.

EDIT:
saya menguji fungsi yang diterapkan dengan smtp gmail dan kredensial gmail saya yang juga saya gunakan di firebase dan berhasil.

Dokumen mengatakan, bahwa saya BISA menggunakan smtp khusus sementara portnya bukan 25.
Jika seseorang dapat menjelaskannya, saya akan sangat menghargainya.


person taburetkin    schedule 24.12.2018    source sumber
comment
Anda termasuk dalam paket pembayaran yang mana?   -  person Renaud Tarnec    schedule 24.12.2018
comment
@RenaudTarnec spark (ini paket gratis), jadi, batasan ini berdasarkan paket? :-/   -  person taburetkin    schedule 24.12.2018


Jawaban (1)


Anda harus menggunakan paket harga "Flame" atau "Blaze".

Faktanya, paket "Spark" gratis "mengizinkan permintaan jaringan keluar hanya ke layanan milik Google". Lihat https://firebase.google.com/pricing/ (arahkan mouse Anda ke tanda tanya terletak setelah judul "Cloud Functions")

Karena server SMTP Anda bukan layanan milik Google, Anda perlu beralih ke paket "Flame" atau "Blaze".

person Renaud Tarnec    schedule 24.12.2018