func GetProductionMTAContainer() (mtacontainer.MTAContainer, mtacontainer.Scheduler) {
	var passphrase = GetPassphraseFromArgOrTerminal()
	var mailGunConfig = mailgunprovider.BitLabConfig(passphrase)
	var amazonConfig = amazonsesprovider.BitLabConfig(passphrase)
	var sendgridConfig = sendgridprovider.BitLabConfig(passphrase)
	providers := make([]mtacontainer.MTAProvider, 3)
	providers[0] = mailgunprovider.New(utilities.GetLogger("MailGun"), mailGunConfig, mtacontainer.NewThressHoldFailureStrategy(ERROR_THRESHOLD))
	providers[1] = amazonsesprovider.New(utilities.GetLogger("amazonSES"), amazonConfig, mtacontainer.NewThressHoldFailureStrategy(ERROR_THRESHOLD))
	providers[2] = sendgridprovider.New(utilities.GetLogger("SendGrid"), sendgridConfig, mtacontainer.NewThressHoldFailureStrategy(ERROR_THRESHOLD))
	var scheduler mtacontainer.Scheduler = mtacontainer.NewRoundRobinScheduler(providers)
	return mtacontainer.New(scheduler), scheduler
}
func main() {

	if len(os.Args) < 3 {
		println("manual_test <to address> <key>")
		return
	}

	to := os.Args[1]
	key := os.Args[2]

	mailgunMTAProvider := mailgunprovider.New(utilities.GetLogger("MailGun"),
		mailgunprovider.BitLabConfig(key), test.NewMockFailureStrategy())
	test.ManuallyVerifyEmailSend(mailgunMTAProvider, to)
}