v1.0.0
Verifier system to check the validity of the email inserted by the user. This system works with James Apache service as SMTP server
Add the JitPack repository to your build file
-
Add it in your root build.gradle at the end of repositories
repositories { ... maven { url 'https://jitpack.io' } }
repositories { ... maven("https://jitpack.io") }
-
Add the dependency
dependencies { implementation 'com.github.N7ghtm4r3:Monkey:1.0.0' }
dependencies { implementation("com.github.N7ghtm4r3:Monkey:1.0.0") }
- Add it in your root build.gradle at the end of repositories
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
- Add the dependency
<dependency>
<groupId>com.github.N7ghtm4r3</groupId>
<artifactId>Monkey</artifactId>
<version>1.0.0</version>
</dependency>
- Java
You need to download the Linux zip folder and then extract it.
To launch the SMTP service you need to run the shell script in:
james-server-spring-app-3.8.0
|-- bin
|-- run.sh
Then at the first launch you will need to add a domain and a user to use SMTP server and the Monkey's service:
# Pathname of the script
james-server-spring-app-3.8.0
|-- bin
|-- james-cli.sh
# Add a domain
./james-cli.sh adddomain your_domain.any_first_level_domain # e.g -> monkey.tecknobit
# Add a user
./james-cli.sh adduser user@your_domain.any_first_level_domain <user_password> # e.g user@monkey.tecknobit root
You need to download the Windows zip folder and then extract it.
To launch the SMTP service you need to run the shell script in:
james-server-spring-app-3.8.0
|-- bin
|-- run.bat
Then at the first launch you will need to add a domain and a user to use SMTP server and the Monkey's service:
# Pathname of the script
james-server-spring-app-3.8.0
|-- bin
|-- james-cli.bat
# Add a domain
.\james-cli.bat AddDomain your_domain.any_first_level_domain # e.g -> monkey.tecknobit
# Add a user
.\james-cli.bat AddUser user@your_domain.any_first_level_domain <user_password> # e.g user@monkey.tecknobit root
Note
If you will run the James Apache service on a machine with the SMTP service already integrated you will need to change the default ports value in the server configuration file to run correctly the James server, in the specific the bind property
james-server-spring-app-3.8.0
|-- conf
|-- smtpserver.xml # default value: 0.0.0.0:25
|-- imapserver.xml # default value: 0.0.0.0:143
|-- pop3server.xml # default value: 0.0.0.0:110
Tip
To use the James Apache SMTP with external providers such Gmail, Hotmail, etc... you need to change the default port value in:
james-server-spring-app-3.8.0
|-- conf
|-- smtpserver.xml # required port value: 0.0.0.0:465 or custom port value 0.0.0.0:any_other_port_value if is already in use the 465 value
Then you must set a Reverse DNS (rDNS) to be accepted by those providers, you can follow this guide for more information.
To use correctly the MonkeyVerifier you need to use the same value inserted also for the smtp_port argument.
MonkeyVerifier monkeyVerifier = new MonkeyVerifier(
"host_where_running_smtp_service",
smtp_port, // Default value: 25
// NUMBERS, CHARACTERS or ALPHANUMERIC
VerificationCodeType,
// FIVE_MINUTES, FIFTEEN_MINUTES, THIRTY_MINUTES, ONE_HOUR or ALWAYS_KEEP_VALID (is the dafault value)
KeepEmailValid,
"user@monkey.tecknobit",
"root"
);
monkeyVerifier.sendPlainVerificationEmail(
"from_text",
"email_subject",
"email_body",
"first_recipient@monkey.tecknobit", "second_recipient@external.domain"
);
// The colors scheme
MonkeyColorsScheme monkeyColorsScheme = new MonkeyColorsScheme(
"the_primary_color_value",
"the_secondary_color_value",
"the_tertiary_color_value",
"the_texts_color_value"
);
// The logo details
MonkeyLogo monkeyLogo = new MonkeyLogo(
"link_to_open_when_the_logo_is_clicked",
"url_of_the_logo_to_insert"
);
// The texts to use in the template
MonkeyTextTemplate monkeyTextTemplate = new MonkeyTextTemplate(
"the_title_of_the_email_to_insert",
"the_description_of_the_email_to_insert",
"tag_for_the_text_of_the_email_footer_to_insert",
"tag_for_the_reasons_text_why_the_email_was_sent"
);
// The template object to create the complete template
MonkeyTemplate monkeyTemplate = new MonkeyTemplate(
monkeyColorsScheme,
monkeyLogo,
monkeyTextTemplate
);
// Send the verification email
monkeyVerifier.sendDefaultTemplateVerificationEmail(
"from_text",
"email_subject",
monkeyTemplate,
"first_recipient@monkey.tecknobit", "second_recipient@external.domain"
);
monkeyVerifier.sendPlainVerificationEmail(
"pathname_of_the_template",
"from_text",
"email_subject",
"email_body",
"first_recipient@monkey.tecknobit", "second_recipient@external.domain"
);
monkeyVerifier.verifyCodeSent(
"email_of_the_user_to_check",
"verification_code_sent_by_the_user",
new MonkeyVerificationActions() {
@Override
public void onSuccess() {
// The verification codes match -> ON_SUCCESS_WORKFLOW
}
@Override
public void onFailure() {
// The verification codes don't match or
// the email is expired -> ON_FAILURE_WORKFLOW
}
}
);
If you need help using the library or encounter any problems or bugs, please contact us via the following links:
Thank you for your help!
If you want support project and developer
Crypto | Address | Network |
---|---|---|
3H3jyCzcRmnxroHthuXh22GXXSmizin2yp | Bitcoin | |
0x1b45bc41efeb3ed655b078f95086f25fc83345c4 | Ethereum |
If you want support project and developer with PayPal
Copyright © 2024 Tecknobit