• PRODUCT

    PRODUCT

  • PRICING
    PRICING

  • HELP
    HELP

  • BLOG
    BLOG

  • APPSTORE
    APPSTORE

  • COMPANY
    COMPANY

  • LEGAL
    LEGAL

  • LOGIN
    LOGIN

  • Workflow Automation

    Workflow Automation

  • AI Assisted Content Management System
    AI Assisted Content Management System

  • Analytics & Lead Generation
    Analytics & Lead Generation

  • Automation Projects
    Automation Projects

  • Browser Extension Apps
    Browser Extension Apps

  • Dashboard Theme Analysis: LN1
    Dashboard Theme Analysis: LN1

  • Data Exchange Automation Tools
    Data Exchange Automation Tools

  • Getting Started With Building Hybrid Apps
    Getting Started With Building Hybrid Apps

  • Izyware Hybrid UX Design Guidelines
    Izyware Hybrid UX Design Guidelines

  • Onboarding New Organizations Using Izyware
    Onboarding New Organizations Using Izyware

  • Quick Visualization and Monitoring
    Quick Visualization and Monitoring

  • Unified Metrics Stream Pipeline
    Unified Metrics Stream Pipeline

  • Legacy Features and Backward Compatibility
    Legacy Features and Backward Compatibility

  • How does the legacy frame architecture work
    How does the legacy frame architecture work

  • Izyware Legacy UI Circus Engine
    Izyware Legacy UI Circus Engine

  • Case Studies and Knowledge Center
    Case Studies and Knowledge Center

  • Angular and React Embedding Guide
    Angular and React Embedding Guide

  • Build and deploy a content distribution app in less than five minutes: Part II
    Build and deploy a content distribution app in less than five minutes: Part II

  • Comparison of CSS Preprocessors SASS vs LESS vs STYLUS
    Comparison of CSS Preprocessors SASS vs LESS vs STYLUS

  • Comparison of node.js test frameworks and utilities: lab, chai, sinon
    Comparison of node.js test frameworks and utilities: lab, chai, sinon

  • Manage and automate your day to day business tools using IzyCloud Tasks: Part I
    Manage and automate your day to day business tools using IzyCloud Tasks: Part I

  • MySql Performance Optimization
    MySql Performance Optimization

  • Onboarding Tutorial: Creating & publishing an app
    Onboarding Tutorial: Creating & publishing an app

  • Rebranding and Customizing Websites
    Rebranding and Customizing Websites

  • Using IzyCloud on Android: IzyCloud Query App
    Using IzyCloud on Android: IzyCloud Query App

  • Technical Resources
    Technical Resources

  • .NET SDKCore IzyWare
    .NET SDKCore IzyWare

  • av-stream README
    av-stream README

  • ElasticSearch IzyWare Data Console Feature
    ElasticSearch IzyWare Data Console Feature

  • End To End Testing
    End To End Testing

  • End To End Testing, Part II
    End To End Testing, Part II

  • frames and nav (ui/w/shell/navmulti) README
    frames and nav (ui/w/shell/navmulti) README

  • izy-circus README
    izy-circus README

  • izy-idman-tools README
    izy-idman-tools README

  • izy-pop3 README
    izy-pop3 README

  • izy-proxy README
    izy-proxy README

  • izy-sync README
    izy-sync README

  • IzyIDE README
    IzyIDE README

  • izymodtask readme
    izymodtask readme

  • IzyShell readme
    IzyShell readme

  • ReKey Feature Package README for IzyWare SQL Console
    ReKey Feature Package README for IzyWare SQL Console

  • Single Sign-On (SSO) README
    Single Sign-On (SSO) README

  • Tasks Migration : V5 guidelines
    Tasks Migration : V5 guidelines

  • Users & Groups README
    Users & Groups README

  • V5 Migration : apps/pulse guidelines README
    V5 Migration : apps/pulse guidelines README

  • Container Orchestration
    Container Orchestration

  • Izy Kubernetes Internal Networking Troubleshooting
    Izy Kubernetes Internal Networking Troubleshooting

  • Application Hosting
    Application Hosting

  • Content Publisher
    Content Publisher

  • Domain Registration
    Domain Registration

  • Email Hosting
    Email Hosting

  • Izyware Browser Extension
    Izyware Browser Extension

  • Izyware Deployment Engine
    Izyware Deployment Engine

  • Izyware Session Management
    Izyware Session Management

  • Messaging System APIs and functionality
    Messaging System APIs and functionality

  • Single SignOn
    Single SignOn

  • Integration APIs
    Integration APIs

  • iOS SDK
    iOS SDK

  • Azure and .NET
    Azure and .NET

  • izy-devops
    izy-devops

  • << izy-idman-tools README
    << izy-idman-tools README

  • izy-proxy README >>
    izy-proxy README >>

  • izy-pop3 README

  • Node.js pop3 server components for Izyware

  • izy-pop3

    Node.js pop3 client, server, diagnostics and scripting components for Izyware Cloud Platform.

    Development Methodology

    Phase 1: Protocol Exploration, Skip Networking

    We recommend that you develope an izy-proxy socket plugin and test the plug-in inline using

    node cli.js method socket socket.path izy-pop3/proxypkg:directdb socket.testmod izy-pop3/proxypkg/test/android socket.verbose.writes true socket.verbose.ondata true socket.user user socket.pass password

    Phase 2: Testing Over Restricted Network Environment

    Since all the functionality is built as a TCP plug-in for izy-proxy, you may use the socket command line testing tools from izy-proxy, i.e.

    node cli.js method socket socket.path localhost socket.port 20110 socket.testmod izy-pop3/proxypkg/test/android socket.verbose.pipe.s1data true socket.verbose.pipe.s2data true socket.verbose.pipe.teardown true socket.verbose.mock false socket.user user socket.pass 'password!'

    If you need to debug the deployment over SSL without izy-proxy, use ncat --ssl. i.e.

    Phase 3: Test Deployment

    Point the socket.path variable in Phase 2 to the your final deployed environment.

    `

    node cli.js method socket socket.path pop3.izyware.com socket.port 995 socket.tls true socket.testmod izy-pop3/proxypkg/test/android socket.verbose.pipe.s1data true socket.verbose.pipe.s2data true socket.verbose.pipe.teardown true socket.verbose.mock true socket.user user socket.pass 'pass'

    `

    `

    ncat --ssl pop3.izyware.com 995

    USER user

    PASS pass

    LIST

    RETR 1

    `

    Phase 3: Scalable Deployment

    Deploy your TCP package to the IzyCloud and turn on auto scaling and instrumentation metrics.

    NOTE

    for more details, visit https://izyware.com

    Change Log

    V3

    • client
    * update taskify schema to use clientpop3/task from an izy-proxy host using 3.0+ chains.

    * modify state schema to contain more config options

    • update to read the payload from maildir dovecot storage
    • updated to use the mimestore dataschema
    • this package server has been integrated into izy-proxy.

    * all the debugging, instrumentation mixed mode testing capabilities available in izy-proxy can now be used

    * izy-pop3/proxypkg:directdb/mim modules have been implemented as a socket plug-in for izy-proxy

    V1

    • You can setup a task in the task manager dashboard with the following:

    parameters: //chain/izy-pop3/proxypkg:test/base

    state: {"ip"server","port"995","user"user@domain","pass"password","tls":true}

    • Encoding of the POP3 data
    * All the commands and metadata returned by the POP3 server are encoded using the ASCII character set. It is worth remembering that the payload returned via the RETR command is binary buffer of octets. This payload is passed on to the mime store handlers and it is up to the mime-store handler to serialize the data properly.

    * Since .eml files are serialized octets from a RFC822 encoded message, the approach shown above would work perfectly fine and should generate interoperable stores that would work with standard compliant tools from 3rd party vendors.

    • added proxypkg/test/base for continous testing
    • What is Included in the LIST command: This behavior is server implementation dependent. For example, GMail will include the contents of the Sent folder and the archived items in LIST where as other providers (ie. Godaddy) may not do so.
    • Evolution of Authentication Steps from the original standard

    * Also note that some providers (i.e. Gmail) would not allow authentication:

    * If you use Multifactor Authentication, try signing in with an App Password (https://support.google.com/accounts/answer/185833), you might get the following error:

    `

    -ERR [AUTH] Username and password not accepted.

    `

    * Note that to setup an app password you will have to re-enter your password and get MFA code to your device.

    * As an alternative you may just disable MFA for a short period of time while doing backups. Doing this will have GMail send a confirmation email:

    `

    2-Step Verification turned off

    You recently turned off 2-Step Verification for your Google Account ...

    Don't recognize this activity?

    Review your recently used devices now.

    `

    * Notice that no confirmation is sent to your MFA device when this gets turned off.

    * If you don't use Multifactor Authentication, you might need to allow less secure apps to access your account.

    * You might get the following error

    `

    -ERR [AUTH] Web login required: https://support.google.com/mail/answer/78754

    `

    and a follow up email gets sent:

    `

    Review blocked sign-in attempt

    Hi xxx,

    Google just blocked someone from signing into your Google Account xxx@gmail.com from an app that may put your account at risk.

    Less secure app

    xxxx

    Don't recognize this activity?

    If you didn't recently receive an error while trying to access a Google service, like Gmail, from a non-Google application, someone may have your password.

    SECURE YOUR ACCOUNT

    Are you the one who tried signing in?

    Google will continue to block sign-in attempts from the app you're using because it has known security problems or is out of date. You can continue to use this app by allowing access to less secure apps, but this may leave your account vulnerable.

    `

    * You should go to https://myaccount.google.com/lesssecureapps and allow access for this to work.

    * When you turn that on, you will also get an email:

    `

    Access for less secure apps has been turned on

    `

    • workarounds for pop3 standard issues. Some POP3 server implementation do not strictly stick to the standard definition. To workaround those issues, the client uses a state machine to intelligently perform RETR commands. Also note that the response to authentication requests from the server could take different forms. e.g. Gmail uses:

    `

    +OK Gpop ready for requests from \r\n

    `

    Secureserver.net however, will respond by:

    `

    +OK Fenix ready.\r\n

    `

    The general rule is that all responses from the server will start with one of the following:

    `

    +OK

    -ERR

    `
    • added testing capabilities for the standalone izy-proxy server

    `

    node cli.js method test testtype fullclientserver

    node cli.js method test testtype mimestore mimestore.modhandler fake query.limit 2 query.tags abc

    node cli.js method test testtype mimestore mimestore.modhandler cloud mimestore.accesstoken xxxx mimestore.dataservice https://yourcloudlocation mimestore.verbose true mimestore.tablename yyy.xxx query.limit 2 query.tags abc

    `

    • implemented standalone izy-proxy module

    `

    npm install izy-pop3;cp -r nodemodules/izy-pop3/* .;rm -rf nodemodules/izy-pop3;

    node cli.js method serverpop3 port 1110 password 12345 mimestore.modhandler fake

    node cli.js method serverpop3 port 1110 password 12345 mimestore.modhandler cloud mimestore.dataservice xxx mimestore.xxx

    ssh -i identity.pem -4 -v -R 1110:localhost:1110 user@your-server.com

    node cli.js method clientpop3 ip pop.secureserver.net port 995 user user@domain pass 'password' tls true verbose.clientLog cmd list

    node cli.js method clientpop3 ip pop.secureserver.net port 995 user user@domain pass 'password' tls true mimestore.modhandler localfs mimestore.path /tmp/izyware/mimestore cmd retr query 1-10

    `