$lang['tuto'] = "பயிற்சிகள்"; ?>$lang['tuto'] = "பயிற்சிகள்"; ?> Flutter இல் மின்னஞ்சல்

Flutter இல் மின்னஞ்சல் வழியாக OTP குறியீட்டை எவ்வாறு அனுப்புவது

Temp mail SuperHeros
Flutter இல் மின்னஞ்சல் வழியாக OTP குறியீட்டை எவ்வாறு அனுப்புவது
Flutter இல் மின்னஞ்சல் வழியாக OTP குறியீட்டை எவ்வாறு அனுப்புவது

Flutter இல் OTP மின்னஞ்சல் சரிபார்ப்பை செயல்படுத்துதல்

பயனர் சரிபார்ப்புக்காக மின்னஞ்சல் வழியாக OTP குறியீடுகளை அனுப்புவது பல பயன்பாடுகளில் பொதுவான அம்சமாகும். இருப்பினும், Firebase ஐ நம்பாமல் இதை செயல்படுத்துவது சவாலானதாக இருக்கும். பல டெவலப்பர்கள் அங்கீகாரப் பிழைகள், மின்னஞ்சல்கள் அனுப்பப்படாதது அல்லது தேவையான அம்சங்களை ஆதரிக்காத தொகுப்புகள் போன்ற சிக்கல்களை எதிர்கொள்கின்றனர்.

இந்த வழிகாட்டியில், Firebase ஐப் பயன்படுத்தாமல் Flutter பயன்பாட்டில் உள்ள மின்னஞ்சல் முகவரிகளுக்கு OTP குறியீடுகளை அனுப்புவதற்கான நம்பகமான முறையை ஆராய்வோம். மாற்றுத் தொகுப்புகளைப் பற்றி விவாதித்து, இந்தச் செயல்பாட்டை உங்கள் பயன்பாட்டில் தடையின்றி ஒருங்கிணைக்க உங்களுக்கு உதவ, படிப்படியான தீர்வை வழங்குவோம்.

கட்டளை விளக்கம்
nodemailer.createTransport மின்னஞ்சல்களை அனுப்ப SMTP ஐப் பயன்படுத்தி டிரான்ஸ்போர்ட்டர் பொருளை உருவாக்குகிறது.
app.use(bodyParser.json()) உள்வரும் JSON கோரிக்கைகளை அலசுவதற்கு மிடில்வேர்.
http.post குறிப்பிட்ட URL க்கு POST கோரிக்கையை அனுப்புகிறது.
TextEditingController பயனர் உள்ளீட்டைப் பிடிக்க Flutter இல் உள்ள உரைப் புலத்தைக் கட்டுப்படுத்துகிறது.
ScaffoldMessenger.of(context).showSnackBar பயன்பாட்டில் ஸ்நாக்பார் செய்தியைக் காட்டுகிறது.
body: {'email': _emailController.text} POST கோரிக்கை அமைப்பில் மின்னஞ்சல் தரவை அனுப்புகிறது.

OTP மின்னஞ்சல் செயலாக்கத்தைப் புரிந்துகொள்வது

வழங்கப்பட்ட Flutter frontend ஸ்கிரிப்ட் பயனரின் மின்னஞ்சலைச் சேகரித்து OTP உருவாக்கம் மற்றும் மின்னஞ்சல் விநியோகத்திற்காக பின்தளத்திற்கு அனுப்ப வடிவமைக்கப்பட்டுள்ளது. இது பயன்படுத்துகிறது TextEditingController மின்னஞ்சல் மற்றும் OTPக்கான உரைப் புலங்களில் பயனர் உள்ளீட்டைக் கையாள. 'ஓடிபியை அனுப்பு' என்று பெயரிடப்பட்ட பொத்தான் தூண்டுகிறது _sendOTP ஒரு POST கோரிக்கையைப் பயன்படுத்தி அனுப்பும் முறை http.post குறிப்பிட்ட பின்தள URL க்கு. மறுமொழி நிலைக் குறியீடு 200 ஆக இருந்தால், வெற்றிச் செய்தியைப் பயன்படுத்திக் காட்டப்படும் ScaffoldMessenger.of(context).showSnackBar. இல்லையெனில், ஒரு பிழை செய்தி காட்டப்படும்.

பின்தளத்தில், ஸ்கிரிப்ட் பலப்படுத்துகிறது Node.js மற்றும் Express சேவையகத்தை அமைப்பதற்கு, மற்றும் nodemailer மின்னஞ்சல்களை அனுப்ப. சேவையகம் ஒரு POST கோரிக்கையைப் பெறும்போது /send-otp இறுதிப்புள்ளி, இது ஒரு சீரற்ற OTP ஐ உருவாக்கி, பயனரின் மின்னஞ்சலுக்கு அனுப்புகிறது. தி nodemailer.createTransport செயல்பாடு மின்னஞ்சல் போக்குவரத்து சேவையை அங்கீகார விவரங்களுடன் கட்டமைக்கிறது transporter.sendMail மின்னஞ்சல் அனுப்புகிறது. மின்னஞ்சல் அனுப்பும் செயல்முறையின் முடிவுகளின் அடிப்படையில் பின்தளமானது வெற்றி அல்லது தோல்வி செய்தியுடன் பதிலளிக்கிறது.

OTP மின்னஞ்சலுக்கான Flutter Frontend ஐ அமைத்தல்

Flutter Frontendக்கு டார்ட்டைப் பயன்படுத்துதல்

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Send OTP')),
        body: OTPForm(),
      ),
    );
  }
}
class OTPForm extends StatefulWidget {
  @override
  _OTPFormState createState() => _OTPFormState();
}
class _OTPFormState extends State<OTPForm> {
  final TextEditingController _emailController = TextEditingController();
  final TextEditingController _otpController = TextEditingController();
  Future<void> _sendOTP() async {
    final response = await http.post(
      Uri.parse('https://your-backend-url/send-otp'),
      body: {'email': _emailController.text},
    );
    if (response.statusCode == 200) {
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('OTP sent!')));
    } else {
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Failed to send OTP')));
    }
  }
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16.0),
      child: Column(
        children: [
          TextField(
            controller: _emailController,
            decoration: InputDecoration(labelText: 'Email'),
          ),
          SizedBox(height: 20),
          ElevatedButton(
            onPressed: _sendOTP,
            child: Text('Send OTP'),
          ),
        ],
      ),
    );
  }
}

OTP மின்னஞ்சல்களை அனுப்ப பின்தளத்தை உருவாக்குதல்

பின்தளத்திற்கு Node.js மற்றும் Express ஐப் பயன்படுத்துதல்

const express = require('express');
const nodemailer = require('nodemailer');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/send-otp', async (req, res) => {
  const { email } = req.body;
  const otp = Math.floor(100000 + Math.random() * 900000);
  let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
      user: 'your-email@gmail.com',
      pass: 'your-email-password',
    },
  });
  let mailOptions = {
    from: 'your-email@gmail.com',
    to: email,
    subject: 'Your OTP Code',
    text: `Your OTP code is ${otp}`
  };
  try {
    await transporter.sendMail(mailOptions);
    res.status(200).send('OTP sent');
  } catch (error) {
    res.status(500).send('Failed to send OTP');
  }
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

OTP மின்னஞ்சலுக்கான Flutter Frontend ஐ அமைத்தல்

Flutter Frontendக்கு டார்ட்டைப் பயன்படுத்துதல்

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Send OTP')),
        body: OTPForm(),
      ),
    );
  }
}
class OTPForm extends StatefulWidget {
  @override
  _OTPFormState createState() => _OTPFormState();
}
class _OTPFormState extends State<OTPForm> {
  final TextEditingController _emailController = TextEditingController();
  final TextEditingController _otpController = TextEditingController();
  Future<void> _sendOTP() async {
    final response = await http.post(
      Uri.parse('https://your-backend-url/send-otp'),
      body: {'email': _emailController.text},
    );
    if (response.statusCode == 200) {
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('OTP sent!')));
    } else {
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Failed to send OTP')));
    }
  }
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16.0),
      child: Column(
        children: [
          TextField(
            controller: _emailController,
            decoration: InputDecoration(labelText: 'Email'),
          ),
          SizedBox(height: 20),
          ElevatedButton(
            onPressed: _sendOTP,
            child: Text('Send OTP'),
          ),
        ],
      ),
    );
  }
}

OTP மின்னஞ்சல்களை அனுப்ப பின்தளத்தை உருவாக்குதல்

பின்தளத்திற்கு Node.js மற்றும் Express ஐப் பயன்படுத்துதல்

const express = require('express');
const nodemailer = require('nodemailer');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/send-otp', async (req, res) => {
  const { email } = req.body;
  const otp = Math.floor(100000 + Math.random() * 900000);
  let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
      user: 'your-email@gmail.com',
      pass: 'your-email-password',
    },
  });
  let mailOptions = {
    from: 'your-email@gmail.com',
    to: email,
    subject: 'Your OTP Code',
    text: `Your OTP code is ${otp}`
  };
  try {
    await transporter.sendMail(mailOptions);
    res.status(200).send('OTP sent');
  } catch (error) {
    res.status(500).send('Failed to send OTP');
  }
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

மாற்று மின்னஞ்சல் OTP அனுப்பும் முறைகள்

SendGrid, Mailgun அல்லது Amazon SES போன்ற மூன்றாம் தரப்பு மின்னஞ்சல் APIகளைப் பயன்படுத்துவது Flutter ஆப்ஸில் உள்ள மின்னஞ்சல்களுக்கு OTP குறியீடுகளை அனுப்புவதற்கான மற்றொரு அணுகுமுறையாகும். இந்தச் சேவைகள் உறுதியான மின்னஞ்சல் விநியோக தீர்வுகளை வழங்குவதோடு, Flutter பயன்பாட்டுடன் எளிதாக ஒருங்கிணைக்கப்படலாம். உதாரணமாக, SendGrid உங்கள் Flutter பயன்பாட்டிலிருந்து நேரடியாக மின்னஞ்சல்களை அனுப்ப டார்ட் தொகுப்பை வழங்குகிறது. இந்தச் சேவைகளைப் பயன்படுத்துவதன் மூலம், SMTP உள்ளமைவுடன் தொடர்புடைய பொதுவான ஆபத்துக்களைத் தவிர்க்கலாம் மற்றும் அதிக மின்னஞ்சல் விநியோக விகிதங்களை உறுதிப்படுத்தலாம்.

SendGrid ஐப் பயன்படுத்த, நீங்கள் ஒரு கணக்கிற்குப் பதிவு செய்து API விசையைப் பெற வேண்டும். பின்னர், உங்கள் Flutter பயன்பாட்டில், OTP மின்னஞ்சலை அனுப்ப SendGrid Dart தொகுப்பைப் பயன்படுத்தலாம். இந்த முறை சாதகமானது, ஏனெனில் இது மின்னஞ்சல் அனுப்புவதில் உள்ள சிக்கல்களை சுருக்கி, கண்காணிப்பு மற்றும் பகுப்பாய்வு போன்ற கூடுதல் அம்சங்களை வழங்குகிறது. கூடுதலாக, உங்கள் மின்னஞ்சல்கள் ஸ்பேம் எனக் கொடியிடப்படாமல் இருப்பதை உறுதிசெய்து, பயனர் அனுபவத்தை மேம்படுத்துகிறது.

OTP மின்னஞ்சல்களை அனுப்புவது பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்

  1. SendGrid ஐப் பயன்படுத்தி OTP மின்னஞ்சலை எவ்வாறு அனுப்புவது?
  2. நீங்கள் SendGrid கணக்கிற்குப் பதிவு செய்ய வேண்டும், API விசையைப் பெற வேண்டும் மற்றும் உங்கள் Flutter பயன்பாட்டிலிருந்து மின்னஞ்சல்களை அனுப்ப SendGrid Dart தொகுப்பைப் பயன்படுத்த வேண்டும்.
  3. மூன்றாம் தரப்பு மின்னஞ்சல் APIகளைப் பயன்படுத்துவதன் நன்மைகள் என்ன?
  4. SendGrid போன்ற மூன்றாம் தரப்பு மின்னஞ்சல் APIகள் அதிக விநியோக விகிதங்கள், ஸ்பேம் பாதுகாப்பு மற்றும் கண்காணிப்பு மற்றும் பகுப்பாய்வு போன்ற கூடுதல் அம்சங்களை வழங்குகின்றன.
  5. SendGridக்குப் பதிலாக Mailgun ஐப் பயன்படுத்தலாமா?
  6. ஆம், மின்னஞ்சல்களை அனுப்ப Mailgun மற்றொரு சிறந்த வழி. அதன் API ஐப் பயன்படுத்தி உங்கள் Flutter பயன்பாட்டில் உள்ளமைப்பதன் மூலம் நீங்கள் அதை ஒருங்கிணைக்கலாம்.
  7. எனது மின்னஞ்சல்கள் ஸ்பேம் எனக் குறிக்கப்பட்டால் என்ன செய்வது?
  8. SendGrid அல்லது Mailgun போன்ற புகழ்பெற்ற மூன்றாம் தரப்பு மின்னஞ்சல் சேவைகளைப் பயன்படுத்துவது உங்கள் மின்னஞ்சல்கள் ஸ்பேம் எனக் குறிக்கப்படுவதற்கான வாய்ப்புகளைக் குறைக்கலாம்.
  9. OTP காலாவதியை நான் எவ்வாறு கையாள்வது?
  10. OTP மற்றும் அதன் நேர முத்திரையை உங்கள் பின்தளத்தில் சேமித்து, குறிப்பிட்ட காலக்கெடுவுக்குள், பொதுவாக 5-10 நிமிடங்களுக்குள் சரிபார்க்கலாம்.
  11. மின்னஞ்சல் வழியாக OTPகளை அனுப்புவது பாதுகாப்பானதா?
  12. எஸ்எம்எஸ் போல பாதுகாப்பானதாக இல்லாவிட்டாலும், மின்னஞ்சல் வழியாக OTPகளை அனுப்புவது ஒரு வசதியான முறையாகும். பயனர் தரவைப் பாதுகாக்க HTTPS மற்றும் பிற பாதுகாப்பு நடைமுறைகளைப் பயன்படுத்துவதை உறுதிசெய்யவும்.
  13. OTP மின்னஞ்சல் டெம்ப்ளேட்டைத் தனிப்பயனாக்க முடியுமா?
  14. ஆம், பெரும்பாலான மின்னஞ்சல் APIகள், உங்கள் பயன்பாட்டின் பிராண்டிங்குடன் பொருந்துமாறு மின்னஞ்சல் உள்ளடக்கத்தையும் வடிவமைப்பையும் தனிப்பயனாக்க உங்களை அனுமதிக்கின்றன.
  15. OTP மின்னஞ்சல் அனுப்பத் தவறினால் நான் என்ன செய்ய வேண்டும்?
  16. மின்னஞ்சலை அனுப்ப மீண்டும் முயற்சிக்க உங்கள் பின்தளத்தில் பிழை கையாளுதலைச் செயல்படுத்தவும் அல்லது மீண்டும் முயற்சிக்குமாறு பயனருக்குத் தெரிவிக்கவும்.
  17. பயனர் உள்ளிட்ட OTP ஐ எவ்வாறு சரிபார்க்கலாம்?
  18. உங்கள் பின்தளத்தில் சேமிக்கப்பட்டுள்ள OTP உடன் பயனர் உள்ளிட்ட OTP ஐ ஒப்பிடுக. அவை பொருந்தும் மற்றும் சரியான காலக்கெடுவிற்குள் இருந்தால், OTP சரிபார்க்கப்படும்.

மாற்று OTP தீர்வுகளைப் புரிந்துகொள்வது

SendGrid, Mailgun அல்லது Amazon SES போன்ற மூன்றாம் தரப்பு மின்னஞ்சல் APIகளைப் பயன்படுத்துவது Flutter ஆப்ஸில் உள்ள பயனர்களுக்கு OTP குறியீடுகளை அனுப்புவதற்கான மற்றொரு அணுகுமுறையாகும். இந்தச் சேவைகள் உறுதியான மின்னஞ்சல் விநியோக தீர்வுகளை வழங்குவதோடு, Flutter பயன்பாட்டுடன் எளிதாக ஒருங்கிணைக்கப்படலாம். உதாரணமாக, SendGrid உங்கள் Flutter பயன்பாட்டிலிருந்து நேரடியாக மின்னஞ்சல்களை அனுப்ப டார்ட் தொகுப்பை வழங்குகிறது. இந்தச் சேவைகளைப் பயன்படுத்துவதன் மூலம், SMTP உள்ளமைவுடன் தொடர்புடைய பொதுவான ஆபத்துக்களைத் தவிர்க்கலாம் மற்றும் அதிக விநியோக விகிதங்களை உறுதிப்படுத்தலாம்.

SendGrid ஐப் பயன்படுத்த, நீங்கள் ஒரு கணக்கிற்குப் பதிவு செய்து API விசையைப் பெற வேண்டும். பின்னர், உங்கள் Flutter பயன்பாட்டில், OTP மின்னஞ்சலை அனுப்ப SendGrid Dart தொகுப்பைப் பயன்படுத்தலாம். இந்த முறை சாதகமானது, ஏனெனில் இது மின்னஞ்சல் அனுப்புவதில் உள்ள சிக்கல்களை சுருக்கி, கண்காணிப்பு மற்றும் பகுப்பாய்வு போன்ற கூடுதல் அம்சங்களை வழங்குகிறது. கூடுதலாக, உங்கள் மின்னஞ்சல்கள் ஸ்பேம் எனக் கொடியிடப்படாமல் இருப்பதை உறுதிசெய்து, பயனர் அனுபவத்தை மேம்படுத்துகிறது.

OTP மின்னஞ்சல் அனுப்புதல் பற்றிய பொதுவான கேள்விகள்

  1. SendGrid ஐப் பயன்படுத்தி OTP மின்னஞ்சலை எவ்வாறு அனுப்புவது?
  2. நீங்கள் SendGrid கணக்கிற்குப் பதிவு செய்து, API விசையைப் பெற வேண்டும் மற்றும் உங்கள் Flutter பயன்பாட்டிலிருந்து மின்னஞ்சல்களை அனுப்ப SendGrid Dart தொகுப்பைப் பயன்படுத்த வேண்டும்.
  3. மூன்றாம் தரப்பு மின்னஞ்சல் APIகளைப் பயன்படுத்துவதன் நன்மைகள் என்ன?
  4. SendGrid போன்ற மூன்றாம் தரப்பு மின்னஞ்சல் APIகள் அதிக விநியோக விகிதங்கள், ஸ்பேம் பாதுகாப்பு மற்றும் கண்காணிப்பு மற்றும் பகுப்பாய்வு போன்ற கூடுதல் அம்சங்களை வழங்குகின்றன.
  5. SendGridக்குப் பதிலாக Mailgun ஐப் பயன்படுத்தலாமா?
  6. ஆம், மின்னஞ்சல்களை அனுப்ப Mailgun மற்றொரு சிறந்த வழி. அதன் API ஐப் பயன்படுத்தி உங்கள் Flutter பயன்பாட்டில் உள்ளமைப்பதன் மூலம் நீங்கள் அதை ஒருங்கிணைக்கலாம்.
  7. எனது மின்னஞ்சல்கள் ஸ்பேம் எனக் குறிக்கப்பட்டால் என்ன செய்வது?
  8. SendGrid அல்லது Mailgun போன்ற புகழ்பெற்ற மூன்றாம் தரப்பு மின்னஞ்சல் சேவைகளைப் பயன்படுத்துவது உங்கள் மின்னஞ்சல்கள் ஸ்பேம் எனக் குறிக்கப்படுவதற்கான வாய்ப்புகளைக் குறைக்கலாம்.
  9. OTP காலாவதியை நான் எவ்வாறு கையாள்வது?
  10. OTP மற்றும் அதன் நேர முத்திரையை உங்கள் பின்தளத்தில் சேமித்து, குறிப்பிட்ட காலக்கெடுவுக்குள், பொதுவாக 5-10 நிமிடங்களுக்குள் சரிபார்க்கலாம்.
  11. மின்னஞ்சல் வழியாக OTPகளை அனுப்புவது பாதுகாப்பானதா?
  12. எஸ்எம்எஸ் போல பாதுகாப்பானதாக இல்லாவிட்டாலும், மின்னஞ்சல் வழியாக OTPகளை அனுப்புவது ஒரு வசதியான முறையாகும். பயனர் தரவைப் பாதுகாக்க HTTPS மற்றும் பிற பாதுகாப்பு நடைமுறைகளைப் பயன்படுத்துவதை உறுதிசெய்யவும்.
  13. OTP மின்னஞ்சல் டெம்ப்ளேட்டைத் தனிப்பயனாக்க முடியுமா?
  14. ஆம், பெரும்பாலான மின்னஞ்சல் APIகள், உங்கள் பயன்பாட்டின் பிராண்டிங்குடன் பொருந்துமாறு மின்னஞ்சல் உள்ளடக்கத்தையும் வடிவமைப்பையும் தனிப்பயனாக்க உங்களை அனுமதிக்கின்றன.
  15. OTP மின்னஞ்சல் அனுப்பத் தவறினால் நான் என்ன செய்ய வேண்டும்?
  16. மின்னஞ்சலை அனுப்ப மீண்டும் முயற்சிக்க உங்கள் பின்தளத்தில் பிழை கையாளுதலைச் செயல்படுத்தவும் அல்லது மீண்டும் முயற்சிக்குமாறு பயனருக்குத் தெரிவிக்கவும்.
  17. பயனர் உள்ளிட்ட OTP ஐ எவ்வாறு சரிபார்க்கலாம்?
  18. உங்கள் பின்தளத்தில் சேமிக்கப்பட்டுள்ள OTP உடன் பயனர் உள்ளிட்ட OTP ஐ ஒப்பிடுக. அவை பொருந்தி சரியான காலக்கெடுவிற்குள் இருந்தால், OTP சரிபார்க்கப்படும்.

OTP மின்னஞ்சல் செயல்முறையின் சுருக்கம்

ஃபயர்பேஸ் இல்லாமல் Flutter பயன்பாட்டில் OTP மின்னஞ்சல் சரிபார்ப்பை அமைப்பது, முன்பக்கம் மற்றும் பின்தளம் இரண்டையும் திறம்பட உள்ளமைப்பதை உள்ளடக்குகிறது. SendGrid அல்லது Mailgun போன்ற மூன்றாம் தரப்பு சேவைகளைப் பயன்படுத்துவது செயல்முறையை எளிதாக்கும் மற்றும் மின்னஞ்சல் விநியோக நம்பகத்தன்மையை மேம்படுத்தும். வழங்கப்பட்ட ஸ்கிரிப்ட்கள் மற்றும் படிகள், தடையற்ற பயனர் சரிபார்ப்பு அனுபவத்தை உறுதிசெய்து செயல்படுத்துவதன் மூலம் உங்களுக்கு வழிகாட்டுகிறது. உங்கள் விண்ணப்பத்தின் ஒருமைப்பாட்டைப் பராமரிக்க OTP காலாவதி மற்றும் பாதுகாப்பைக் கையாளுவதை உறுதிசெய்யவும்.