Order process maintenance scheduled for Sep 14th, 2021

September 7th, 2021

We will be conducting planned maintenance to ordering system on Tuesday, Sep 14th, 2021

Time:

4 AM to 11 AM CDT
11 AM to 6 PM CEST
5 PM CST to 12 AM CST Sep 15,2021
6 PM JST to 1 AM JST Sep 15, 2021

During the planned maintenance, the system will continue to take orders. However customers may see temporary delays in fulfillment and order confirmation emails.

Once the maintenance is finished, we expect all functionality to resume; orders will be processed, and order confirmation emails will be sent to customers.

Mail.dll – Add MandroidI18n in Xamarin release mode

March 1st, 2021

Mail.dll requires multiple encodings to work.

By default in the Release mode, Xamarin applications link only most common encodings. Of course this is not enough to handle multi-national email messages.

If on startup your application receives MissingEncodingException error, you need to add MandroidI18n into your .csproj (e.g. App1.Android.csproj):

<MandroidI18n>All</MandroidI18n>

You might need to unload the project first to be able to edit it:

Alternatively you can go to:

Android project -> Properties -> Android Options

and select all possible encodings in:

Linker properties -> Additional supported encodings

Order process maintenance scheduled for Feb 24, 2021

February 18th, 2021

We will be conducting planned maintenance to ordering system on Wednesday, February 24, 2021

During the planned maintenance, the system will continue to take orders. However customers may see temporary delays in fulfillment and order confirmation emails.

Once the maintenance is finished, we expect all functionality to resume; orders will be processed, and order confirmation emails will be sent to customers.

Access shared/delegate mailbox of Office 365

February 4th, 2021

There are 2 ways of accessing a shared mailbox in Office 365: first -using regular IMAP authentication and a second one – using OAuth 2.0.

Shared mailbox – basic authentication

Make sure basic authentication is turned on:

Try authenticating to users’ regular mailbox with his credentials to check if basic authentication works and the user/password is correct:

client.UseBestLogin("AlexW@example.com", "AlexWPassword");

Access the shared mailbox

Use the following user format:

Username@DomainName\Shared@DomainName

You must use Login method:

client.Login(@"AlexW@example.com\invoices@example.com", "AlexWPassword"); 

-or-

alternatively you may use LoginPlain method:

client.LoginPlain("invoices@example.com", "AlexW@example.com", "AlexWPassword");

Don’t use UseBestLogin for Office365 shared mailboxes and basic authentication.

The reason is Office  365 advertises LOGIN PLAIN as a preferred login method and UseBestLogin chooses to use it. However Office 365 does not recognize Username@DomainName\Shared@DomainName user pattern when using LOGIN PLAIN. For Office 365 to accept a LOGIN PLAIN to a shared mailbox, you need to provide all 3 parameters separately: shared mailbox, user and user password – use LoginPlain to do that.

Shared mailbox – OAuth 2.0

It is much simpler with OAuth. Use any of the available OAuth 2.0 flows:

https://www.limilabs.com/blog/oauth2-password-grant-office365-exchange-imap-pop3-smtp

https://www.limilabs.com/blog/oauth2-office365-exchange-imap-pop3-smtp

When you’ve obtained an access token you simply use it to access shared mailbox:

string accessToken = result.AccessToken;

using (Imap client = new Imap())
{
    client.ConnectSSL("outlook.office365.com");
    client.LoginOAUTH2("invoices@example.com", accessToken);

    client.SelectInbox();

    List<long> uids = imap.Search(Flag.Unseen);
    foreach (long uid in uids)
    {
        var eml = imap.GetMessageByUID(uid)
        IMail email = new MailBuilder().CreateFromEml();
        string subject = email.Subject);
    }
    client.Close();
}

Office365: Temporary server error. Please try again later. PRX4

January 28th, 2021

When using SMTP with Office365 and OAUTH 2.0 you may receive this error:

Temporary server error. Please try again later. PRX4

SMTP logs look like this:

Connecting to ‘outlook.office365.com:587’, SSL/TLS: False.

S: 220 AS8PR04CA0136.outlook.office365.com Microsoft ESMTP MAIL Service ready at Thu, 28 Jan 2021 15:43:35 + 0000
C: EHLO[IPv6:2a02:]
S: 250-AS8PR04CA0136.outlook.office365.com Hello[2a02:]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-8BITMIME
S: 250-BINARYMIME
S: 250-CHUNKING
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 SMTP server ready
C: EHLO[IPv6:2a02:]
S: 250-AS8PR04CA0136.outlook.office365.com Hello [2a02:]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-AUTH LOGIN XOAUTH2
S: 250-8BITMIME
S: 250-BINARYMIME
S: 250-CHUNKING
S: 250 SMTPUTF8
C: AUTH XOAUTH2 dXNlcj1B...EEBAQ==
S: 451 4.7.0 Temporary server error. Please try again later. PRX4[AS8PR04CA0136.eurprd04.prod.outlook.com]

 It is a bug when setting up an office365 business account with Microsoft. 

After creating the e-mail account, you have to edit the account (go to https://admin.microsoft.com/)

Then go to “Mail” tab then click “Manage email apps

There is an option called “Authenticated SMTP”.  It is ticked by default, however to actually make it work you have to uncheck it and save the changes, then go back in and re-check it and save the changes.

You may need to leave it unchecked for some time and wait for some time when it is rechecked before it starts working:

C: AUTH XOAUTH2 dXNlcj1B...BAQ==
S: 235 2.7.0 Authentication successful
C: QUIT