async fn send_email_new_user(&self) {
        // Initialize the SendGrid client.
        let sendgrid = SendGrid::new_from_env();
        let github_org = github_org();

        // Get the user's aliases if they have one.
        let aliases = self.aliases.join(", ");

        let mut github_copy = format!(
            "Your GitHub @{} has been added to our organization (https://github.com/{})
and various teams within it. GitHub should have sent an email with instructions on
accepting the invitation to our organization to the email you used
when you signed up for GitHub. Or you can alternatively accept our invitation
by going to https://github.com/{}.",
            self.github, github_org, github_org
        );
        if self.github.is_empty() {
            // Let the new hire know they need to create a GitHub account.
            github_copy = format!(
                "We do not have a github account for you. You will need to create one at https://github.com
OR let jess@{} know your handle, if you already have one. Either way, be sure to
let jess@{} know what your GitHub handle is.",
                DOMAIN, DOMAIN
            );
        }

        // Send the message.
        sendgrid
            .send_mail(
                format!("Your New Email Account: {}", self.email()),
                format!(
                    "Yoyoyo {},

You should have an email from Okta about setting up your account with them.
We use Okta to authenticate to a number of different apps -- including
Google Workspace and GitHub. This includes email, calendar, drive, etc.

After setting up your Okta account your email account with Google will be
provisioned. You can then login to your email from: mail.corp.{}.
Details for accessing are below.

Website for Okta login: https://oxidecomputerlogin.okta.com
Website for email login: https://mail.corp.{}
Email: {}
Aliases: {}

Make sure you set up two-factor authentication for your account, or in one week
you will be locked out.

{}

If you have any questions or your email does not work please email your
administrator, who is cc-ed on this email. Spoiler alert it's Jess...
jess@{}. If you want other email aliases, let Jess know as well.

You can find more onboarding information in GitHub:
https://github.com/{}/meta/blob/master/general/onboarding.md
You can find information about internal processes and applications at:
https://github.com/{}/meta/blob/master/general/README.md

As a first contribution to one of our repos, add a book
to our internal library: https://github.com/{}/library

We use Airtable for storing just about everything. You can login with single
sign-on (SSO) after setting up your email at:
https://airtable.com/sso/login.
To join our Airtable workspace you need to click this link:
https://airtable-join.corp.oxide.computer.
Poke around once you've joined :)

We have both a Riot server and a Slack for chat. Josh (josh@oxidecomputer.com) can get
you set up with an account on the Riot server. You can use SSO to login to the Slack
at https://oxidecomputer.slack.com.

Lastly, be sure to order yourself some swag: https://swag.oxide.computer

xoxo,
  The Onboarding Bot",
                    self.first_name,
                    DOMAIN,
                    DOMAIN,
                    self.email(),
                    aliases,
                    github_copy,
                    DOMAIN,
                    github_org,
                    github_org,
                    github_org,
                ),
                vec![self.recovery_email.to_string()],
                vec![self.email(), format!("jess@{}", DOMAIN)],
                vec![],
                format!("admin@{}", DOMAIN),
            )
            .await;
    }
/// Send an email to the new user about their account.
Send an email to the new user about their account.
Send an email to the new user about their account .
async fn send_email_new_user(&self) {
        // Initialize the SendGrid client.
        let sendgrid = SendGrid::new_from_env();
        let github_org = github_org();
        // Get the user's aliases if they have one.
        let aliases = self.aliases.join(", ");
        let mut github_copy = format!(
            "Your GitHub @{} has been added to our organization (https://github.com/{})
and various teams within it. GitHub should have sent an email with instructions on
accepting the invitation to our organization to the email you used
when you signed up for GitHub. Or you can alternatively accept our invitation
by going to https://github.com/{}.",
            self.github, github_org, github_org
        );
        if self.github.is_empty() {
            // Let the new hire know they need to create a GitHub account.
            github_copy = format!(
                "We do not have a github account for you. You will need to create one at https://github.com
OR let jess@{} know your handle, if you already have one. Either way, be sure to
let jess@{} know what your GitHub handle is.",
                DOMAIN, DOMAIN
            );
        }
        // Send the message.
        sendgrid
            .send_mail(
                format!("Your New Email Account: {}", self.email()),
                format!(
                    "Yoyoyo {},
You should have an email from Okta about setting up your account with them.
We use Okta to authenticate to a number of different apps -- including
Google Workspace and GitHub. This includes email, calendar, drive, etc.
After setting up your Okta account your email account with Google will be
provisioned. You can then login to your email from: mail.corp.{}.
Details for accessing are below.
Website for Okta login: https://oxidecomputerlogin.okta.com
Website for email login: https://mail.corp.{}
Email: {}
Aliases: {}
Make sure you set up two-factor authentication for your account, or in one week
you will be locked out.
{}
If you have any questions or your email does not work please email your
administrator, who is cc-ed on this email. Spoiler alert it's Jess...
jess@{}. If you want other email aliases, let Jess know as well.
You can find more onboarding information in GitHub:
https://github.com/{}/meta/blob/master/general/onboarding.md
You can find information about internal processes and applications at:
https://github.com/{}/meta/blob/master/general/README.md
As a first contribution to one of our repos, add a book
to our internal library: https://github.com/{}/library
We use Airtable for storing just about everything. You can login with single
sign-on (SSO) after setting up your email at:
https://airtable.com/sso/login.
To join our Airtable workspace you need to click this link:
https://airtable-join.corp.oxide.computer.
Poke around once you've joined :)
We have both a Riot server and a Slack for chat. Josh (josh@oxidecomputer.com) can get
you set up with an account on the Riot server. You can use SSO to login to the Slack
at https://oxidecomputer.slack.com.
Lastly, be sure to order yourself some swag: https://swag.oxide.computer
xoxo,
  The Onboarding Bot",
                    self.first_name,
                    DOMAIN,
                    DOMAIN,
                    self.email(),
                    aliases,
                    github_copy,
                    DOMAIN,
                    github_org,
                    github_org,
                    github_org,
                ),
                vec![self.recovery_email.to_string()],
                vec![self.email(), format!("jess@{}", DOMAIN)],
                vec![],
                format!("admin@{}", DOMAIN),
            )
            .await;
    }
async fn send_email_new_user ( & self ) { // Initialize the SendGrid client. let sendgrid = SendGrid :: new_from_env ( ) ; let github_org = github_org ( ) ; // Get the user's aliases if they have one. let aliases = self . aliases . join ( " " ) ; let mut github_copy = format ! ( " " self github github_org github_org ) ; if self . github . is_empty ( ) { // Let the new hire know they need to create a GitHub account. github_copy = format ! ( " " DOMAIN DOMAIN ) ; } // Send the message. sendgrid . send_mail ( format ! ( " " self email ( ) ) , format ! ( " " self first_name DOMAIN DOMAIN self email ( ) aliases github_copy DOMAIN github_org github_org github_org ) , vec ! [ self recovery_email to_string ( ) ] , vec ! [ self email ( ) format ( " " DOMAIN ) ] , vec ! [ ] , format ! ( " " DOMAIN ) , ) . await ; }
Send an email to the new user about their account.
Send an email to the new user about their account .
&self
&self