Default email Confirmation Snippet

lokiys

Moderator
Регистрация
01.02.2012
Сообщения
4 769
Благодарностей
1 179
Баллы
113
I found out that it is much faster and better to use C# for email confirmation.
Because you can control use of every option in one place, like: do not use HTML of email, remove messages and timeout to check message. Default email action require you to log in before You can change those parameters, because of that i developed snippet for all You guys.
Another time saver will be that you can create your own Email Configuration file with all email server and ports information, that all your projects could use it from one place.
This is like zenno default option Settings - Auto detect in email action, but there You will have full control over all settings.

C#:
// Get Email config file path
var configPath = project.Variables["emailConfPath"].Value;
// Read email Config file
var emailConfig = System.IO.File.ReadAllText(configPath);
// Get email provider from email
var rgx = Macros.TextProcessing.Split(project.Variables["email"].Value, "@", "1").First();
// Create regex to find email configuration
rgx = rgx + ":";
rgx = System.Text.RegularExpressions.Regex.Escape(rgx);
var regex = new System.Text.RegularExpressions.Regex(@"(?<=" + rgx + @").*");
var match = regex.Match(emailConfig);
string emailConfigString =  match.Groups[0].Value;
if(emailConfigString == "") return "";
// Confirm email
var emailConfirm = ZennoPoster.MailConfirm("15;30;60",
project.Variables["email"].Value,
project.Variables["emailPass"].Value,
Macros.TextProcessing.Split(emailConfigString, ";", "0").First(),
Convert.ToInt32(Macros.TextProcessing.Split(emailConfigString, ";", "1").First()),
Convert.ToBoolean(Macros.TextProcessing.Split(emailConfigString, ";", "2").First()),
Convert.ToBoolean(project.Variables["useHtml"].Value),
Convert.ToBoolean(Macros.TextProcessing.Split(emailConfigString, ";", "3").First()),
Convert.ToBoolean(Macros.TextProcessing.Split(emailConfigString, ";", "4").First()),
project.Variables["emailRegex"].Value,
project.Variables["emailRegex"].Value, 0);
return emailConfirm.Trim();
To use this snippet in your project you will need to create variables. Or use my prepared template for that.

email = email to check confirmation link
emailPass = email password to check confirmation link
useHtml = if use HTML of email to find confirmation link then true if not then false and plain text will be used
emailRegex = this variable Value should contain regex how to find your confirmation email
emailConfirm = this variable value will contain Your confirmation link.

Add all email providers you use in file Email_Config.txt - You can call this file as you like and also You can save it whatever you want. Just set up project variable "emailConfPath" with your actual path to file.
In file you will find example strings like:

hotmail.com:pop3.live.com;995;true;false;false

hotmail.com:
= part after @ from your email so if email is "[email protected]" you should add in config hotmail.com at the beginning.
pop3.live.com = email server.
995 = email server port.
true = true or false - if email server useSsl then true otherwise false.
false = useIMAP - true or false - if use POP3 then false, if use IMAP then true.
false = removeMessages true or false - if need to remove then true if not then false.

All other Variables will be taken from project itself because such variables as emailRegex useHTML will be different for each project.


To make everything faster I attached piece of template.
Open it copy Group of actions you see in Your template and after that delete all variable processing actions and leave C# action with comment Confirm Email - this will make all necessary project variables automatically. You will need to add values to them. This willl save you some time.

Hope that helps.
Let me know is something is not clear.

Cheers
 

Вложения

lokiys

Moderator
Регистрация
01.02.2012
Сообщения
4 769
Благодарностей
1 179
Баллы
113
Updated first post and made some changes to make email confirmation even more handy, so if you already used previous snippet - replace with this one.

Cheers
 

kamazi

Client
Регистрация
16.10.2013
Сообщения
29
Благодарностей
0
Баллы
1
Регистрация
01.02.2018
Сообщения
6
Благодарностей
2
Баллы
3
@lokiys What do I need to change for get all unread messages?
 

noname007

Пользователь
Регистрация
19.04.2018
Сообщения
42
Благодарностей
2
Баллы
8
@lokiys Thank you for sharing this code.
I have a problem.
I used hotmail with some alias emails.upload_2019-8-5_15-16-43.png
I only get the first comfirm link. I can't get another link.
Please teach me how to fix it.
Thanks.
upload_2019-8-5_15-16-43.png
 

lokiys

Moderator
Регистрация
01.02.2012
Сообщения
4 769
Благодарностей
1 179
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)