• 10-10-2023, 23:11:16
    #1
    const nodemailer = require('nodemailer');
    const { google } = require('googleapis');
    // These id's and secrets should come from .env file.
    const CLIENT_ID = 'YOUR CLIENT ID';
    const CLEINT_SECRET = 'YOUR CLIENT SECRET';
    const REDIRECT_URI = 'https://developers.google.com/oauthplayground';
    const REFRESH_TOKEN = 'YOUR REFRESH TOKEN';
    const oAuth2Client = new google.auth.OAuth2(
      CLIENT_ID,
      CLEINT_SECRET,
      REDIRECT_URI
    );
    oAuth2Client.setCredentials({ refresh_token: REFRESH_TOKEN });
    async function sendMail() {
      try {
        const accessToken = await oAuth2Client.getAccessToken();
        const transport = nodemailer.createTransport({
          service: 'gmail',
          auth: {
            type: 'OAuth2',
            user: 'yours authorised email address',
            clientId: CLIENT_ID,
            clientSecret: CLEINT_SECRET,
            refreshToken: REFRESH_TOKEN,
            accessToken: accessToken,
          },
        });
        const mailOptions = {
          from: 'SENDER NAME <yours authorised email [email]address@gmail.com[/email]>',
          to: 'to email address here',
          subject: 'Hello from gmail using API',
          text: 'Hello from gmail email using API',
          html: '<h1>Hello from gmail email using API</h1>',
        };
        const result = await transport.sendMail(mailOptions);
        return result;
      } catch (error) {
        return error;
      }
    }
    sendMail()
      .then((result) => console.log('Email sent...', result))
      .catch((error) => console.log(error.message));
    Elimde yukarıdaki gibi bir form var aktif. Bu formu HTML formuma nasıl entegre ederim? Aşağıda formu verdim.

    <form class="form" id="my-form" action="" method="POST">
       
        <label for="isim">Adınız ve Soyadınız</label>
        <input type="text" name="isim" id="isim" required>
        <label for="proje">Projeniz</label>
        <textarea name="proje" id="proje" cols="20" rows="15"></textarea>
        <label for="mail">İletişim Mailiniz</label>
        <input type="email" name="mail" id="mail" required>
        <br>
        <button type="submit"> Gönder </button>
    
        <p id="my-form-status"></p>
      </form>
  • 10-10-2023, 23:51:50
    #2
    Üyeliği durduruldu
    nodejs öğrenerek
  • 11-10-2023, 01:52:31
    #3
    Çok teşekkür ederim çok yardımcı oldunuz, ben her şeyi bilsem burada ne işim var? Bir iş yapıyorum ve bu konu da yardıma ihtiyacım var. Her şeyi bırakıp node.js öğrenip mi işime devam edeceğim yoksa birilerinden yardım alarak mı. Tabii ki öğrenmek iyidir ama verdiğiniz cevap oldukça ciddiyetsiz.
  • 02-12-2023, 22:25:56
    #4
    Merhaba gönderim yaprken asenkron olarak sendemail fonksiyonunuzu çağırmak yeterli olacaktır, umarım işinize yarar ��


    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>R10.net Form</title>
    </head>
    <body>
    <form class="form" id="my-form" action="" method="POST">
    <label for="isim">Adınız ve Soyadınız</label>
    <input type="text" name="isim" id="isim" required>
    <label for="proje">Projeniz</label>
    <textarea name="proje" id="proje" cols="20" rows="15"></textarea>
    <label for="mail">İletişim Mailiniz</label>
    <input type="email" name="mail" id="mail" required>
    <br>
    <button type="button" onclick="submitForm()">Gönder</button>
    <p id="my-form-status"></p>
    </form>

    <script>
    async function submitForm() {
    try {
    const result = await sendMail();
    console.log('Email sent...', result);
    document.getElementById('my-form-status').textContent = 'Form başarıyla gönderildi!';
    } catch (error) {
    console.error(error.message);
    document.getElementById('my-form-status').textContent = 'Form gönderilirken bir hata oluştu.';
    }
    }
    </script>
    </body>
    </html>