From d133d9bd5ad53e3579631ad480b25c28110c880f Mon Sep 17 00:00:00 2001 From: "Adam T. Carpenter" Date: Tue, 27 Jun 2023 22:58:26 -0400 Subject: feat: begin migration writeup and design doc --- tutors/email/migrate.php | 22 ++++++++++++++ tutors/email/proposal.php | 74 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 tutors/email/migrate.php create mode 100644 tutors/email/proposal.php diff --git a/tutors/email/migrate.php b/tutors/email/migrate.php new file mode 100644 index 0000000..60e6c15 --- /dev/null +++ b/tutors/email/migrate.php @@ -0,0 +1,22 @@ +- set up mail forwarding from existing tutor emails to personal emails (one-way) +- disable dnssec on google domains +- unlock google domain +- transfer to porkbun via ui with google domains token; approve transfer on google domains +- clone 53hor.net DNS records into porkbun domain +- turn on dnssec for porkbun domain +- turn on ssl certificate generation for porkbun domain + +now every tutor needs manual action to be able to send mail again + +every tutor needs to generate a password and submit the encrypted password to carpenter tutoring. this secret exchange still needs to be worked out + +whether configuring gmail alias or setting up another mail client, steps are the same as before but the imap and smtp settings need to be changed + +mta: mail.53hor.net +starttls for all ssl settings +143 for imap +587 for smtp +username is @carpentertutoring email +password is TBD + +also the homepage mailer needs to be updated, preferably with its own email address which goes back to amy diff --git a/tutors/email/proposal.php b/tutors/email/proposal.php new file mode 100644 index 0000000..81e94d6 --- /dev/null +++ b/tutors/email/proposal.php @@ -0,0 +1,74 @@ + + + +
+
+

+ This proposal documents migrating the Carpenter Tutoring domain name and email forwarding structure away from Google Domains to a dual Porkbun and self-hosted structure. +

+ +

Impetus

+ +

+ Google is selling off Google Domains to Squarespace at an undisclosed date. This was announced 2023-06-05 and is documented here. + Google Domains provided the following key features for Carpenter Tutoring: + +

    +
  1. A domain registrar, mapping carpentertutoring.com to an IP address. This allowed us to serve both the company homepage and cloud storage (Nextcloud) applications to clients and tutors.
  2. +
  3. Free mail forwarding, allowing every new tutor to have a @carpentertutoring.com email address with which they can send mail to and receive mail from clients.
  4. +
  5. DNS controls to automate certificate renewal, providing both the homepage and Nextcloud instance with TLS.
  6. +
  7. Close integration with Google Business Profile, the primary non-homepage web presence for Carpenter Tutoring.
  8. +
+

+ +

+ These services are critical to the operation of Carpenter Tutoring and therefore must be replaced with the next best substitute as soon as possible. Their replacement must continue to be resilient and protected against change to minimise rework. This is especially important given the growing number of independent contractors joining Carpenter Tutoring in the past three months. +

+ +

Existing costs

+ +

+ All Google Domains services are available for $12.00 per year for Carpenter Tutoring. The homepage and Nextcloud are self-hosted for the cost of electricity and maintenance by Carpenter Tutoring itself. For the purposes of this document, those costs are negligible. +

+ +

Path of no action

+ +

+ If no action is taken, the carpentertutoring.com domain will be transferred to Squarespace. Google promises no interruption of service as a result of the migration. Squarespace assures users that their existing registrations will be financially covered for the remainder of their registration period. Since carpentertutoring.com renews in January each year, the business would pay nothing to be migrated to Squarespace until January. +

+ +

+ Ironically, Squarespace provides email forwarding features for small businesses by reselling Google Workspace. The cost of Google Workspace mail accounts for all tutors is prohibitive for Carpenter Tutoring and will not be considered. This means Squarespace does not offer a low-cost or free mail delivery service for independent contractors. +

+ +

+ Squarespace, being more than a domain registrar, offers bundle plans with website builders, custom domains, product inventory and checkout carts, and SEO tools. The majority of these tools offer no immediate or near future value to Carpenter Tutoring, and would therefore be an upsell on the essential services Carpenter Tutoring needs today. +

+ +

+ For these reasons, Squarespace cannot be considered a viable alternative to Google Domains. A third-party replacement is required to maintain existing operability and costs. +

+ +

Path of higher cost and equivalent functionality

+ +

Path of equivalent cost and minimal functionality

+ +

Path of low cost and increased functionality

+ +

Architecture

+ +

Implementation

+ +

Security considerations

+ +

Cost considerations

+ +

Uptime/resiliency considerations

+ +
+ +
+ + -- cgit v1.2.3 From 43c0c800c83765ca21b6dfe0146ac8a872b25cd6 Mon Sep 17 00:00:00 2001 From: "Adam T. Carpenter" Date: Thu, 29 Jun 2023 01:07:26 -0400 Subject: feat: update gmail instructions, begin form, replace current guide --- about/index.php | 4 +- tutors/email/index.php | 101 ++++++++++++++++++++++++++++++++-------------- tutors/email/migrate.php | 22 ---------- tutors/email/proposal.php | 34 +++++++++++++--- 4 files changed, 102 insertions(+), 59 deletions(-) delete mode 100644 tutors/email/migrate.php diff --git a/about/index.php b/about/index.php index af33d0e..b821726 100644 --- a/about/index.php +++ b/about/index.php @@ -26,7 +26,7 @@

I received my B.A. from The College of William and Mary in 2018 and received my M.Ed. from W&M in 2020. As an undergraduate, I worked and was trained - as a tutor at W&M's peer tutoring center, the Tribe TutorZone. During + as a tutor at W&M's peer tutoring center, the TutorZone. During this period, I conducted over 150 one-on-one appointments with W&M students in 26 different content areas. I earned lifetime Advanced Tutor Certification, the highest level W&M can grant, through the College @@ -38,7 +38,7 @@

- I loved getting to work with the Tribe TutorZone tutors, but I realized that + I loved getting to work with the TutorZone tutors, but I realized that I missed being the tutor. There's just nothing like watching the light bulb of understanding go off or seeing students who had struggled with material master it! With that realization, I decided to dedicate my life to my diff --git a/tutors/email/index.php b/tutors/email/index.php index 08139e1..49e430a 100644 --- a/tutors/email/index.php +++ b/tutors/email/index.php @@ -1,64 +1,105 @@ + + +

- This guide is for Gmail users only. While most of this guide will also be applicable to other mail providers, additional steps may be required. + Every tutor is expected to use a @carpentertutoring.com email address to facilitate client communication. This guide will walk you through setting up your email from scratch and configuring your mail client to use it.

-

Receiving Mail

-

- Once your carpentertutoring.com email address is created, you will receive a verification email. In order to receive mail in your personal address from this alias, you will have to click the confirmation link in the verification email. Once complete, you can start receiving mail immediately. + You have two options for using your new email address. The first is standalone which allows you to use the mail client of your choice to send and receive mail. Some popular desktop clients are Mail for Windows 10, Thunderbird

-

Sending Mail

+ +

Create a mail account

+
+ + + + + +
+ + + +

Connection details

+ +
+SMTP server: mail.53hor.net
+Connection security: STARTTLS
+Authentication method: normal password
+SMTP port: 587
+SMTP username: 
+
+Password: use the password you just submitted
+
+IMAP server: mail.53hor.net
+Connection security: STARTTLS
+Authentication method: normal password
+IMAP port: 143
+IMAP username: 
+
+Password: use the password you just submitted
+
+
+ +

Optional Gmail forwarding

+ +

Receiving Mail

- Sending mail from your carpentertutoring.com address requires a small amount of setup. + Once your carpentertutoring.com email address is created, you will begin receiving forwarded email in your Gmail inbox.

-

App Password

+

Sending mail from Gmail

- Google 2-Step Verification requires you to first generate an App Password for your personal Gmail account. Note that you must have 2-Step Verification turned on for your account in order to forward sent mail to your Carpenter Tutoring alias. You can verify whether you have 2-Step Verification turned on for your Google account by visiting this link to your Google account settings. If 2-Step Verification is turned off, turn it on and proceed with the following steps. + Sending mail from your carpentertutoring.com address via Gmail requires a small amount of setup.

-

    -
  1. On your computer, open App Passwords.
  2. -
  3. In the bottom of the window, click Select app and choose Mail from the list.
  4. -
  5. Click Select device and choose Other... and enter "Carpenter Tutoring" in the box.
  6. -
  7. Click Generate. You will see 16 letters and numbers in a yellow box. Copy this or write it down for the next step.
  8. -
  9. Click Done. Keep in mind you will not be able to see the App Password anymore. If you forget it before the next step, you will have to create a new one.
  10. -
-

- -

- -

Mail forwarding

  1. On your computer, open Gmail.
  2. In the top right, click settings (⚙️) and then See all settings.
  3. Click the Accounts and import or Accounts tab.
  4. In the "Send mail as" section, click Add another email address.
  5. -
  6. Enter your name and the address you want to send from. This will be your carpentertutoring.com address. Leave the "Treat as an alias" box checked.
  7. +
  8. Enter your name and the address you want to send from. This will be your carpentertutoring.com address. Leave the "Treat as an alias" box checked.
  9. Click Next Step.
  10. -
  11. For the "SMTP server" enter smtp.gmail.com. Select 465 for the port.
  12. -
  13. For the username and password you will enter your personal Gmail address (with "@gmail.com" suffix) and the App Password you generated in the previous step.
  14. -
  15. Check "Secured connection using SSL (recommended)" and click Add Account.
  16. +
  17. For the "SMTP server" enter mail.53hor.net. Select 587 for the port.
  18. +
  19. For the username and password you will enter your new Carpenter Tutoring address (with "@carpentertutoring.com" suffix) and the password you submitted in the previous step.
  20. +
  21. Check "Secured connection using TLS (recommended)" and click Add Account.
  22. +
  23. Gmail will prompt you to verify your new address. You should receive a confirmation code in your inbox, forwarded from your carpentertutoring.com address. Use it to complete the alias setup.
  24. Return to the "Send mail as" section on the settings page and look for "When replying to a message." Check "Reply from the same address the message was sent to." This will ensure you respond to tutoring inquiries with your Carpenter Tutoring address and personal mail with your Gmail address.
  25. -
+

- -

Now you should be able to immediately send mail as your Carpenter Tutoring alias. To test this, compose a new message an check the "From" box. You should see a menu there where you can choose which address to send mail from.

- -

Thank you for being a part of Carpenter Tutoring!

diff --git a/tutors/email/migrate.php b/tutors/email/migrate.php deleted file mode 100644 index 60e6c15..0000000 --- a/tutors/email/migrate.php +++ /dev/null @@ -1,22 +0,0 @@ -- set up mail forwarding from existing tutor emails to personal emails (one-way) -- disable dnssec on google domains -- unlock google domain -- transfer to porkbun via ui with google domains token; approve transfer on google domains -- clone 53hor.net DNS records into porkbun domain -- turn on dnssec for porkbun domain -- turn on ssl certificate generation for porkbun domain - -now every tutor needs manual action to be able to send mail again - -every tutor needs to generate a password and submit the encrypted password to carpenter tutoring. this secret exchange still needs to be worked out - -whether configuring gmail alias or setting up another mail client, steps are the same as before but the imap and smtp settings need to be changed - -mta: mail.53hor.net -starttls for all ssl settings -143 for imap -587 for smtp -username is @carpentertutoring email -password is TBD - -also the homepage mailer needs to be updated, preferably with its own email address which goes back to amy diff --git a/tutors/email/proposal.php b/tutors/email/proposal.php index 81e94d6..84d7daf 100644 --- a/tutors/email/proposal.php +++ b/tutors/email/proposal.php @@ -51,21 +51,45 @@ For these reasons, Squarespace cannot be considered a viable alternative to Google Domains. A third-party replacement is required to maintain existing operability and costs.

+

Path of equivalent cost and minimal functionality

+ +

+ Porkbun also offers one-way email forwarding for $3.00 per address per year. For ten tutors this would be $30.00 billed annually and does not account for domain registration costs. While much more affordable, it is critical for tutors to be able to send mail to clients as well as receive it. Therefore this is not an option. +

+

Path of higher cost and equivalent functionality

-

Path of equivalent cost and minimal functionality

+

+ To quickly get set up and running again with little operational overhead, Porkbun offers mail hosting for $2.00 per month per inbox. For ten tutors this would be $240.00 billed annually and does not take into account the domain registration costs. Every tutor would receive a dedicated webmail interface and be able to configure two-way forwarding just like they had previously. As the number of tutors grows, this starts to become less cost-effective compared to other options. +

Path of low cost and increased functionality

+

+ The optimal solution that provides the lowest cost and the highest comparable functionality is transferring domains only to Porkbun and implementing self-hosted email on the Carpenter Tutoring web server. This will provide a virtually unlimited number of tutors with a virtual unlimited capacity mailbox each. It also provides Carpenter Tutoring with greater control over company data and communications. Additional forwarding addresses can be constructed for information "blurb"s or mailing lists. +

+ +

+ The cost of this solution is the accounted for domain registration fee ($9.73 renewal, $11.48 one-time transfer). The operating cost of the mail server is the electricity powering the existing homepage and Nextcloud instance. +

+

Architecture

-

Implementation

+

+ Here is a rough architectural overview. + Porkbun registers the domain name and DNS configuration pointing MX records to MTA mail.53hor.net. At mail.53hor.net are an SMTP server and an IMAP server. Every tutor gets a virtual user and mailbox and the appropriate configuration to use any mail client of their choice. +

-

Security considerations

+

+ Spam filters prevent unwarranted and unwanted messages from arriving on all tutors' inboxes. Common rules can be set up to redirect known spam away from inboxes and into junk for all tutors. Additionally, DKIM is configured to make sure mail is delivered to major tech mail providers (Google, Microsoft, Apple) who require it. +

-

Cost considerations

+

Implementation

+ +

OpenSMTPD is used as an MTA, sending mail and running the necessary actions on incoming and outgoing mail requests. Dovecot exists as an IMAP virtual mailbox for tutors to authenticate with and check mail. Rspamd is a spam filter integrating with Dovecot. +

-

Uptime/resiliency considerations

+

Useful starting information here.

-- cgit v1.2.3 From 0ac96491e93e7ee09325b03cdbc402f3908cffea Mon Sep 17 00:00:00 2001 From: "Adam T. Carpenter" Date: Fri, 30 Jun 2023 12:11:51 -0400 Subject: feat: info about clients --- tutors/email/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutors/email/index.php b/tutors/email/index.php index 49e430a..badb4eb 100644 --- a/tutors/email/index.php +++ b/tutors/email/index.php @@ -21,7 +21,7 @@

- You have two options for using your new email address. The first is standalone which allows you to use the mail client of your choice to send and receive mail. Some popular desktop clients are Mail for Windows 10, Thunderbird + You have two options for using your new email address. The first is standalone which allows you to use the mail client of your choice to send and receive mail. Some popular desktop clients are Apple's Mail app, Mozilla Thunderbird, and Microsoft Outlook. Popular mobile mail clients include the iOS Mail app and K-9 Mail for Android.

Date: Sun, 2 Jul 2023 10:36:02 -0400 Subject: feat: upload form and password encryption complete Helpful guides rough draft --- tutors/email/index.php | 174 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 117 insertions(+), 57 deletions(-) diff --git a/tutors/email/index.php b/tutors/email/index.php index badb4eb..cb4602f 100644 --- a/tutors/email/index.php +++ b/tutors/email/index.php @@ -1,13 +1,3 @@ - -