Skip to content

A fast & simple email authentication OTP sender and verification flutter package.

License

Notifications You must be signed in to change notification settings

chouhan-rahul/email_otp

 
 

Repository files navigation

Email OTP is a Flutter package designed to simplify email authentication using one-time passwords (OTPs). With Email OTP, you can effortlessly generate OTPs and send them to users' email addresses, ensuring secure identity verification. This package offers an efficient and secure method for incorporating email-based OTP authentication into your Flutter applications.

Email OTP Banner

GitHub Sponsor

Table of Contents

Configuration

The simplest way to 🛠️ configure the EmailOTP package is by calling the config method without any parameters. This sets up the default configuration for generating OTPs.

void main() {
  EmailOTP.config();
}

Advanced Configuration

For more control over the OTP generation and email settings, you can pass various parameters to the config method. Below is an example demonstrating how to customize the configuration.

void main() {
  EmailOTP.config(
    appName: 'App Name',
    otpType: OTPType.numeric,
    emailTheme: EmailTheme.v1,
    appEmail: '[email protected]',
    otpLength: 6,
  );
}

Parameters

  1. appName: A string representing the name of your application.
  2. otpType: Specifies the type of OTP to be generated. It supports three types:
    • OTPType.numeric: OTP will consist only of numbers.
    • OTPType.alpha: OTP will consist only of alphabetic characters.
    • OTPType.alphaNumeric: OTP will consist of both alphabetic characters and numbers.
  3. emailTheme: Defines the theme for the OTP email. The package currently supports five themes:
    • Theme Theme Preview
      EmailTheme.v1
      EmailTheme.v2
      EmailTheme.v3
      EmailTheme.v4
      EmailTheme.v5
  4. appEmail: The email address from which the OTP emails will be sent.
  5. otpLength: An integer specifying the length of the OTP. In this example, the OTP will be 6 digits long.

By configuring these parameters, you can tailor the OTP generation and email sending process to suit your application's requirements.

SMTP (Optional)

To send OTPs from a custom email address, configure your SMTP settings using the setSMTP method. Ensure that your SMTP credentials are accurate.

void main() {
  EmailOTP.config();
  EmailOTP.setSMTP(
    host: 'mail.rohitchouhan.com',
    emailPort: EmailPort.port25,
    secureType: SecureType.tls,
    username: '[email protected]',
    password: 'm9eFxuBQ4hbD5XGP3TEdWN',
  );
}

Parameters

  1. host: The hostname of your SMTP server.
  2. emailPort: The port number used by the SMTP server. Supported values include:
    • EmailPort.port25
    • EmailPort.port465
    • EmailPort.port587
  3. secureType: The type of security used by the SMTP server. Supported values include:
    • SecureType.none
    • SecureType.tls
    • SecureType.ssl
  4. username: The username for your SMTP server account.
  5. password: The password for your SMTP server account.

By configuring these parameters, you can ensure that your application is able to send OTP emails securely and efficiently.

Template (Optional)

You can also customize the email 🌐 template used to send the OTP. Use the setTemplate method to provide your own HTML template.

void main() {
  EmailOTP.config();
  EmailOTP.setTemplate(
    template: '''
    <div style="background-color: #f4f4f4; padding: 20px; font-family: Arial, sans-serif;">
      <div style="background-color: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);">
        <h1 style="color: #333;">{{appName}}</h1>
        <p style="color: #333;">Your OTP is <strong>{{otp}}</strong></p>
        <p style="color: #333;">This OTP is valid for 5 minutes.</p>
        <p style="color: #333;">Thank you for using our service.</p>
      </div>
    </div>
    ''',
  );
}

Parameters

  • template: A string containing the HTML content of your custom email template. Use placeholders such as {{appName}} and {{otp}} to dynamically insert the application name and OTP respectively.

By configuring these parameters and using a custom template, you can ensure that your OTP emails are tailored to match your application's branding and style.

Sending OTP

To 📧 send an 🔐 OTP to a user's email address, use the sendOTP method. This method takes the recipient's email address as a parameter.

  EmailOTP.sendOTP(email: emailController.text)

Parameters

  • email: The recipient's email address where the OTP will be sent.

Verifying OTP

To verify an 🔐 OTP entered by the user, use the verifyOTP method. This method takes the OTP entered by the user as a parameter and returns a boolean indicating whether the OTP is correct.

  EmailOTP.verifyOTP(otp: otpController.text)

Parameters

  • otp: The OTP entered by the user.

Get OTP

This code will print the OTP generated by the getOTP method.

  print(EmailOTP.getOTP);

Example

👉 For a complete example, refer to the Email OTP package documentation.

Report bugs or issues

You are welcome to open a ticket on github if any 🐞 problems arise. New ideas are always welcome.

Contributors

Rahul Chouhan
Chouhan Rahul

Copyright © 2024 Rohit Chouhan. Licensed under the MIT LICENSE

About

A fast & simple email authentication OTP sender and verification flutter package.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 100.0%