email_otp 3.0.2 copy "email_otp: ^3.0.2" to clipboard
email_otp: ^3.0.2 copied to clipboard

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

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,
    expiry : 30000,
    emailTheme: EmailTheme.v6,
    appEmail: 'me@rohitchouhan.com',
    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. expiry: OTP expiry time in milliseconds
  4. 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
      EmailTheme.v6
  5. appEmail: The email address from which the OTP emails will be sent.
  6. 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: 'test@rohitchouhan.com',
    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());

Is Expired #

This method will helps you to validate your otp expiry time.

  print(EmailOTP.isExpired());

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

89
likes
160
pub points
95%
popularity
screenshot

Publisher

verified publisherrohitchouhan.com

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

Homepage
Repository (GitHub)
View/report issues

Topics

#email #otp #smtp #authentication

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on email_otp