Monday, August 21, 2023

How to setup postfix on Ubuntu Server as a SMTP Email Relay

Setting up an SMTP Email Relay or Email Forwarder are used in organizations where applications that need to send email can where it is not dependent on an individual being logged in.  The typical example would be for email marking, but it can also be for the Photocopier in the office or any other number of commonly used devices that people use where it sends email.  The relay service allows you to use a generalized email setup by the organization.  Most commonly these are setup as "no-reply" or something to that effect.  To facilitate the setup of the mail forwarder/relay we will be using a Google Non-Profits email account.  The first thing you will need to do is setup the account, then login to the account and setup the account for use with "less secure app access".

Create the account, and set the password.  In this case I am using something called myemailservice

Then login to the account and setup "less secure app access" you can do this by using this link or by managing your Google Account as shown below.

Once that is done we can now do the setup for our relay server.  I am setting it up on Hyper-V using Ubuntu 22.04LTS.  I have given it 2 cores, a min 2GB Ram with dynamic memory management up to 8GB and a 40GB drive.  Obviously, networking, etc, etc, etc.  Also because it is linux don't forget to change the security boot setting to Microsoft Cert Authority.

When installing Ubuntu Server I am going to do my typical setup; minimized, no GUI, Live patching, vim, Powershell and ssh access for the default install.

After installation login and update the system, and set your timezone.  By default ETC is typically used.  If you know your timezone like I do you can manually specify it.  

sudo timedatectl set-timezone America/Edmonton

To verify the setting use the command timedatectl or ls -l /etc/localtime

Now we will install our postfix smtp relay

Install Postfix

sudo apt-get install postfix and set the mail configuration to "Internet Site"

Postfix doesn't natively support SASL authentication so we must install a module for SASL authentication support.  You can read more about it here

 sudo apt-get install libsasl2-modules postfix mailutils

Once installed we need to configure post fix.

sudo vi /etc/postfix/ and set myhostname to the FQDN

Then we need to add the following

relayhost = []:587

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

smtp_use_tls = yes

Also don't forget to add any networks you want to be able to send email from via smtp.  You will have to add the host or network range to the mynetworks variable as shown below.

Now we need to make our password map.  This will allow us to connect to the google account we are going to use to send the emails via smtp.  The file will be located in /etc/postfix/sasl_passwd

sudo vi /etc/postfix/sasl_passwd

in the file put the following

[]:587 $youremailaccount:$accountpassword

and save and exit.

Change the permissions of the file so it is only readable by root

sudo chmod 600 /etc/postfix/sasl_passwd

restart postfix to apply our changes.

sudo systemctl restart postfix

To test our setting use the following 

echo "This is a test email body." | mail -s "Subject" -a "From: $"

I also use this depreciated powershell command for testing as well

Send-MailMessage -From '$' -To '$' -Subject '$SomeSubject' -smtpserver 'DNS or IP to relayserver' -port '25'

Here are some important commands you will want to keep when using the relay server

postqueue - p

run all messages 

sendmail -q

get mail queue

postqueue -f 

flush the mail queue


Tuesday, August 15, 2023

Fixing windows that has slow desktop loading after restart or cold boot

Fixing windows that has slow desktop loading after restart or cold boot

I've recently encountered an odd issue where a laptop would boot up and be on be stuck on the "Please Wait" Screen when booting.  It would eventually get to the desktop but only after a time range of 30 minutes to 3 hours of waiting.  Running repair utilities such as sfc, chkdsk, and a variety of 3rd party tools did not do anything to resolve the issue.  In fact the tools were saying the drive was just fine; the drive is an SSD and the utilities reported the drive to be in good condition.  So I removed the drive from the laptop and connected it to my workstation where I ran disk utilities on the SSD, and it passed all tests; so I re-imaged the SSD to a new SSD, with the same boot result.  I did a test with adding a new ssd and doing an install of windows; the performance was better but it still took about 4 minutes to get to the desktop.

Being unsatisfied with this result, while not wanting to deal with this issue a few months down the road I thought I would try one thing before going the route reinstalling windows and all the default apps route, I opened the laptop, left the SSD installed on the laptop.  I re-installed the original ssd with all the user's data on it, unplugged the power to the laptop and the laptop battery.  I then pressed the on button for the laptop and kept holding it for 30 seconds (just to be safe) to discharge the laptop's capacitors.  Once I discharged the capacitors on the laptop and reconnected the laptop battery and turned on the laptop the system booted to the windows desktop in about 10 seconds.  So not only did this save me from having to reinstall windows, all the default organization applications and transfer the users data, the system performed better then it had in months.  The next time your having slow boot times, try discharge the capacitors it might save you a lot of time.

How to fix CURL call imporitng an RSS feed on a site blocking CURL calls

There is a 3rd party service provider that my organization uses called bibliocommons.  They have these nice book carousels.  However the car...