Canon Scan to Email with Office 365

Setting up a Canon iR-ADV C5550 with Scan to Email with Office 365 for Business.

Microsoft has recently released “High Volume Email for Microsoft 365 (HVE)” which supports sending SMTP email without doing an ‘OAuth dance’, as they phase out simple Login support. At the time of writing, there is no pricing information other than ‘stay under the daily limits’. Also this tool is in ‘preview’ so they might change / remove it at any point.

https://techcommunity.microsoft.com/blog/exchange/public-preview-high-volume-email-for-microsoft-365/4102271

At the time of writing the limit for HVE during the Preview is 100,000 recipients per day per tenant (and will be expanded at GA). For most office scanners this shouldn’t be a problem (unless you’re also using HVE for some sort of high volume transactional email). Currently you can only have 20 HVE accounts per tenant.

Setup

Note: The majority of this setup can be done using the Web UI, however setting the SMTP port must be done while physically in front of the machine.

Step 1) Create a printer@yourdomain / scanner@yourdomain Hight Volume Email Account (HVE) within the Office 365 Admin / Exchange portal. Go to: https://admin.exchange.microsoft.com/#/mailboxes and then in the left nav:

'Mail Flow' > 'High Volume Email (Preview)'

Note: I had issues creating an account when the name was something basic like ‘Printer’, and instead opted to add a second word with a space. So now it’s ‘Printer Scanner’.

Step 2) Login to the Web UI of the Canon Photocopier. Navigate to:

'Settings / Registration' > 'Send' (Under Function Settings) > 'Network Settings - E-Mail/I-Fax Settings'.

Step 3) Complete the following info:
Unless specified untick all checkboxes and leave all inputs blank.

SMTP Server: smtp-hve.office365.com
E-Mail Address: [what you created into Step 1]

[x] Allow TLS (SMTP TX)
[x] Use SMTP Authentication (SMTP AUTH)
User Name: [what you created into Step 1]
[x] Change Password
    Password: [your password from step 1]
    Confirm: [your password from step 1]

Allow TLX (SMTP RX): 'Always TLS'

[OK] (top right hand of screen)

*Note about ‘Confirm TLS Certificate for SMTP TX’, ideally you’d want this on, but older machines might not have the required certificate chains.
Those paying attention will notice the lack of ability to set a port number on this screen. Sadly they appear to have left it out, but we can set it locally.

Step 4) Set the port to 587. Physically at the machine, bring up the settings / registration menu and login. Navigate to:

'Function Settings' > 'Send' > 'E-Mail/I-Fax Settings'. Tap 'Specify Port Number for SMTP TX/POP RX'

Enter 587 as the SMTP port.

Step 5) Do a sample scan to see if it works.

Sources:
– Configuration Details: https://techcommunity.microsoft.com/blog/exchange/public-preview-high-volume-email-for-microsoft-365/4102271#community-4102271-toc-hId-1926164751
– The magic hidden Port setting: https://community.spiceworks.com/t/canon-scan-to-email-to-microsoft-not-working-gmail-no-problem/829340/9

Style Guide Library / Reference List

Sample / Useful Style Guides when it comes to language.

Company Style Guides for Inspiration

Tools

Disk Usage Tools

Sometimes it’s a challenge to find which folder is taking up all the disk space on your machine. Here are a collection of tools I keep coming back to (although I can never remember the name of ncdu – which is why I’m writing it down in a easy to access place).

Windows:

windirstat
https://portableapps.com/apps/utilities/windirstat_portable

Mac OS X

Grand Perspective
https://grandperspectiv.sourceforge.net

Linux (in shell)
Ncdu
https://dev.yorhel.nl/ncdu

All do a similar thing, just with different outputs.

Installing Canon Printer drivers on ARM Windows

Guess what, the latest Microsoft Surface Pro X, isn’t all that ‘Pro’ friendly with it’s ARM based processor that it seems, nobody has a printer driver for. Who knows why Microsoft haven’t been able to add a 4G chip without having to replace the entire processor with a ARM chip. Lenovo and Dell (and probably HP) have been offering 3G/4G connectivity in their business ranges for years.

Rant over, thankfully a handful of generic priter drivers come in the box which might get you out in a pinch.

1) Go to ‘Printers & Scanners’ under Settings.

2) Click on Add a new Printer and wait, after a while a little message pops up saying ‘The printer that I want isn’t listed’

3) The old Add Printer dialogue appears. Select the last option ‘Add a local printer….’

4) Create a new port – Standard TCP/IP port

5) Use the Machines IP address. Untick the ‘Query the printer’ box.

6) Select the ‘Microsoft PCL6’ driver from the list.7) Print off a test page. It seems to work.

Obviously, you lose all the amazing extra bits from the driver, but for basic stuff, it’s good.

Nginx proxy_redirect

The information you’re about to submit is not secure

Because the site is using a connection that’s not completely secure, your information will be visible to others.

Chrome v86 started warning users about insecure forms. An odd configuration where Nginx was sitting in front of an IIS box was throwing the warning to users, seemingly because IIS wasn’t aware of the SSL layer that Nginx was putting on.

The solution. Adding the following line into the location block in Nginx.

proxy_redirect http://$host/ https://$host/;

No more warnings and now the browser stays inside of https land. Excellent.

By using the $host variable, instead of the actual hostname it allows this to be used inside of a snippet and used across multiple websites without having to change anything.

Yii2 MySQL remote SSL connection

'db' => [
	'class' => 'yii\db\Connection',
	'dsn' => 'mysql:host=REMOTE.HOST.MYSQL;dbname=remote_db_name',
	'username' => 'remote_db_user',
	'password' => 'remote_db_password',
	'charset' => 'utf8',
	'attributes' => [
		PDO::MYSQL_ATTR_SSL_KEY => dirname(dirname(__DIR__)) . '/common/config/ssl/client-key.pem',
		PDO::MYSQL_ATTR_SSL_CERT => dirname(dirname(__DIR__)) . '/common/config/ssl/client-cert.pem',                
		PDO::MYSQL_ATTR_SSL_CA => dirname(dirname(__DIR__)) . '/common/config/ssl/server-ca.pem',                
		],
],

This is assuming that the certs are within the common folder of an Yii2 advanced template project.

It’s probably also a good idea to chmod the pem files to 600 and the ssl directory to 700 so that only the user

Where are the pem files?

/var/lib/mysql/*.pem

List of LGA Postcodes impacted by COVID19 MELBOURNE lockdown

At the office we needed a list of Postcodes of suburbs affected by the second lockdown of Melbourne, Victoria.

Below is the list. While I believe that this is accurate, assume it’s released under the MIT license. It could have gaps. (Technically it’s licensed under the ‘Creative Commons Attribution 4.0 International (CC BY 4.0)’ license)

UPDATE 16/7/2020 – As pointed out by Michael the list below is missing 3135 & 3136. I’ve included them in the list below.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Data is from the VEC: https://discover.data.vic.gov.au/dataset/victorian-electors-by-locality-postcode-and-electorates
With a filter of LGA listed from:
https://www.dhhs.vic.gov.au/updates/coronavirus-covid-19/statement-premier

3083
3088
3085
3087
3095
3093
3094
3081
3084
3079
3187
3188
3186
3193
3192
3190
3191
3103
3126
3127
3147
3124
3146
3122
3123
3104
3101
3102
3012
3020
3021
3023
3026
3036
3033
3042
3038
3022
3043
3037
3981
3984
3978
3987
3809
3810
3980
3782
3807
3808
3781
3783
3159
3812
3815
3814
3816
3813
3977
3975
3177
3802
3806
3912
3803
3805
3804
3976
3156
3078
3070
3072
3071
3058
3073
3201
3198
3199
3200
3910
3911
3204
3165
3162
3145
3161
3185
3163
3183
3175
3171
3172
3174
3173
3018
3028
3025
3015
3016
3047
3061
3048
3060
3064
3062
3049
3428
3430
3427
3045
3063
3429
3059
3189
3196
3197
3169
3202
3167
3195
3194
3153
3155
3154
3152
3180
3179
3787
3178
3105
3108
3106
3107
3115
3111
3131
3109
3114
3134
3113
3019
3011
3032
3013
3008
3207
3006
3052
3053
3054
3002
3031
3000
3051
3003
3004
3141
3336
3335
3024
3029
3337
3338
3340
3664
3658
3762
3764
3444
3522
3758
3523
3660
3663
3435
3662
3521
3659
3666
3753
3756
3125
3148
3168
3150
3149
3170
3166
3040
3041
3039
3034
3046
3056
3057
3055
3068
3044
3926
3918
3919
3915
3920
3933
3913
3931
3930
3934
3936
3942
3939
3940
3929
3928
3938
3916
3944
3937
3941
3927
3943
3099
3097
3775
3759
3760
3761
3755
3089
3754
3090
3096
3091
3206
3184
3205
3182
3181
3143
3144
3142
3130
3128
3129
3151
3133
3132
3082
3757
3076
3752
3750
3075
3074
3751
3030
3027
3211
3067
3121
3066
3065
3137
3138
3777
3139
3799
3797
3723
3116
3770
3766
3140
3796
3795
3160
3786
3791
3793
3765
3767
3788
3789
3792
3785
3158
3135
3136

Filtered Excel Dataset can be downloaded below:
Victorian Electorates by Locality and Postcode Filtered for COVID19

Background: I was asked to compile a list of postcodes in lockdown in Melbourne, I started by first going through the list of Local Government Area, I got to the second one and decided that their had to be a better way. Thank goodness for the DATA VIC site.

Issue installing pyinstaller

Recently while running:

pip install pyinstaller

I encountered the following error:

Failed to build pyinstaller
Skipping wheel build for altgraph, due to binaries being disabled for it.
Skipping wheel build for pefile, due to binaries being disabled for it.
ERROR: Could not build wheels for pyinstaller which use PEP 517 and cannot be installed directly

It turns out that Windows Defender (the built in AV in Windows 10) was blocking runw.exe

The real error was a few lines above:

error: could not open 'PyInstaller\bootloader\Windows-32bit\runw.exe': Invalid argument

A quick unblock from Windows Defender and it worked.

Thanks to: https://github.com/pyinstaller/pyinstaller/issues/3813#issuecomment-575319940 for the hint.