#!/bin/bash # If there aren't any mail users yet, create one. if [ -z "$(management/cli.py user)" ]; then # The outut of "management/cli.py user" is a list of mail users. If there # aren't any yet, it'll be empty. # If we didn't ask for an email address at the start, do so now. if [ -z "${EMAIL_ADDR:-}" ]; then # In an interactive shell, ask the user for an email address. if [ -z "${NONINTERACTIVE:-}" ]; then input_box "Mail Account" \ "Let's create your first mail account. \n\nWhat email address do you want?" \ "me@$(get_default_hostname)" \ EMAIL_ADDR if [ -z "$EMAIL_ADDR" ]; then # user hit ESC/cancel exit fi while ! management/mailconfig.py validate-email "$EMAIL_ADDR" do input_box "Mail Account" \ "That's not a valid email address. \n\nWhat email address do you want?" \ "$EMAIL_ADDR" \ EMAIL_ADDR if [ -z "$EMAIL_ADDR" ]; then # user hit ESC/cancel exit fi done # But in a non-interactive shell, just make something up. # This is normally for testing. else # Use me@PRIMARY_HOSTNAME EMAIL_ADDR=me@$PRIMARY_HOSTNAME EMAIL_PW=12345678 echo echo "Creating a new administrative mail account for $EMAIL_ADDR with password $EMAIL_PW." echo fi else echo echo "Okay. I'm about to set up $EMAIL_ADDR for you. This account will also" echo "have access to the box's control panel." fi # Create the user's mail account. This will ask for a password if none was given above. management/cli.py user add "$EMAIL_ADDR" "${EMAIL_PW:-}" # Make it an admin. hide_output management/cli.py user make-admin "$EMAIL_ADDR" # Create an alias to which we'll direct all automatically-created administrative aliases. management/cli.py alias add "administrator@$PRIMARY_HOSTNAME" "$EMAIL_ADDR" > /dev/null fi