CanvasLMS cannot send email Using AWS SES

Keywords: Canvas LMS - Installers - Technical issue - Email configuration (SMTP)

bndiagnostic ID: a15a3286-82fa-31bb-90e6-b9b6de93cf46

Description:
Hello,

I have gone through all of the SMTP configurations.

Our EC2 server sends email with SMTP information provided by AWS SES without any problem as I have tested it using a php script.

I have also tried to debug the problem in the logs of both canvas and apache2 however no luck.

Also it is so strange and I find this by luck, (it was never mentioned anywhere):
https://stackoverflow.com/questions/52380448/not-able-to-deliver-the-mail-in-canvas-lms-what-configuration-setting-i-am-miss

and I have enabled this.

Do I have to install a stmp sender like “sendemail” and configure it ? Can you point out us to find out the problem I am sure other people will benefit for this.

Here is my outgoing yml (i have also tried lots of other variations):

production:
address: “email-smtp.us-east-1.amazonaws.com
port: “587”
delivery_method: “smtp”
#enable_starttls_auto: false
user_name: “AK…O”
password: “B…a”
authentication: “login” # plain, login, or cram_md5
domain: “online…org”
outgoing_address: “canvas@…org”
default_name: “Instructure Canvas”

Thanks

Hi @universityLms,

Did you check this guide?

https://docs.bitnami.com/aws/apps/canvaslms/configuration/configure-smtp/

Regards,
Michiel

Hi @michiel sure i did, I have gone through every possible documentations you have provided.

Hi @universityLms,

Can you try with enable_starttls_auto: true and authentication: “plain”?

I think AWS SES requires starttls:

https://docs.aws.amazon.com/ses/latest/dg/smtp-connect.html

Regards,
Michiel

hi @michiel

I have tried it as you suggested, and restarted it, however again no luc :confused: I have also remembered that i have tried these before. Should I maybe change logging.yml and set to debug:true and see what is going on ?

@michiel

I have reconfigured also:

production:
  address: "email-smtp.us-east-1.amazonaws.com"
  port: "587"
  #tls: false
  #delivery_method: "smtp"
  enable_starttls_auto: true
  user_name: "AK........O"
  password: "B........a"
  authentication: "plain" # plain, login, or cram_md5
  domain: "online.......org"
  outgoing_address: "canvas@online.......org"
  default_name: "Instructure Canvas"

No luck with this configuration, as i am getting this error:

2022-06-23 02:49:24.821491<
530 Must issue a STARTTLS command first
/opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:975:in check_auth_response' /opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:736:in auth_plain’
/opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:728:in authenticate' /opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:565:in do_start’
/opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:518:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:109:in start_smtp_session’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:100:in deliver!' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/message.rb:2159:in do_delivery’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/message.rb:260:in block in deliver' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/base.rb:589:in block in deliver_mail’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.4.2/lib/active_support/notifications.rb:180:in block in instrument' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.4.2/lib/active_support/notifications/instrumenter.rb:24:in instrument’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.4.2/lib/active_support/notifications.rb:180:in instrument' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/base.rb:587:in deliver_mail’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/message.rb:260:in deliver' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/message_delivery.rb:115:in block in deliver_now’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/rescuable.rb:17:in handle_exceptions' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/message_delivery.rb:114:in deliver_now’
/opt/bitnami/canvaslms/app/models/message.rb:1039:in deliver_via_email' /opt/bitnami/canvaslms/app/models/message.rb:736:in deliver’
/opt/bitnami/canvaslms/app/models/message.rb:55:in deliver' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/performable_method.rb:40:in perform’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/backend/base.rb:305:in block in invoke_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/sentry-inst_jobs-1.0.0/lib/sentry/inst_jobs/plugin.rb:12:in block (2 levels) in class:Plugin
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/backend/base.rb:302:in invoke_job’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/backend/base.rb:86:in block in invoke_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:596:in block in activate’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:98:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:595:in activate’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/backend/base.rb:86:in invoke_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:219:in block (2 levels) in perform’
/opt/bitnami/ruby/lib/ruby/2.7.0/benchmark.rb:308:in realtime' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:213:in block in perform’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:22:in block (2 levels) in enable_perform_timing' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing.rb:8:in block in report_timing’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst_statsd-2.2.0/lib/inst_statsd/statsd.rb:91:in time' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing.rb:8:in report_timing’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:21:in block in enable_perform_timing' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:13:in block (2 levels) in enable_batching' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst_statsd-2.2.0/lib/inst_statsd/statsd.rb:97:in batch’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:12:in block in enable_batching' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add’
/opt/bitnami/canvaslms/config/initializers/delayed_job.rb:153:in block (2 levels) in <top (required)>' /opt/bitnami/canvaslms/lib/temp_cache.rb:30:in enable’
/opt/bitnami/canvaslms/config/initializers/delayed_job.rb:152:in block in <top (required)>' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:210:in perform' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:180:in block (2 levels) in run’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:285:in block in configure_for_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:54:in running_job’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:281:in configure_for_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:179:in block in run’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:171:in run’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:26:in block in run' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:596:in block in activate’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:98:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:595:in activate’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:26:in run' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:135:in block in start’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:134:in start’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:19:in block in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:596:in block in activate’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:98:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:595:in activate’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:19:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:103:in block in spawn_worker’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:115:in block in fork_with_reconnects' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:111:in fork’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:111:in fork_with_reconnects' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:102:in spawn_worker’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:268:in respawn_child' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:229:in block in maintain_children’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:228:in each' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:228:in maintain_children’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:175:in block in join' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:174:in loop’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:174:in join' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:50:in start’
/opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/cli.rb:111:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/cli.rb:36:in run’
script/delayed_job:11:in <main>'

Hi @universityLms,

I recommend asking in the CanvasLMS community.

https://community.canvaslms.com/

Regards,
Michiel