Наша система отправляет по электронной почте внутри Работы с использованием asynchronousMailServiceGrails ошибки асинхронной почтовой службы
log.debug 'Sending email to ' + emailTo
asynchronousMailService.sendMail {
multipart true
to emailTo.split("[,;]")
bcc "[email protected]"
from "[email protected]"
subject "test subject"
html(view:'/email/testTemplate', model: [test: test])
attachBytes testId +".pdf" , 'application/pdf', invoiceBytes
}
log.debug("Invoice email sent.")
со следующим Grails конфигурацией:
grails {
mail {
host = "smtp.gmail.com"
port = 465
username = "[email protected]"
password = "password"
props = ["mail.smtp.auth":"true",
"mail.smtp.socketFactory.port":"465",
"mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback":"false"]
}
}
asynchronous.mail.default.attempt.interval = 300000l // Five minutes
asynchronous.mail.default.max.attempts.count = 1
asynchronous.mail.send.repeat.interval = 60000l // One minute
asynchronous.mail.expired.collector.repeat.interval = 607000l
asynchronous.mail.messages.at.once = 100
asynchronous.mail.send.immediately = true
asynchronous.mail.override = false
asynchronous.mail.clear.after.sent = false
asynchronous.mail.disable = false
asynchronous.mail.useFlushOnSave = true
asynchronous.mail.persistence.provider = 'hibernate4' // Possible values are 'hibernate', 'hibernate4', 'mongodb'
asynchronous.mail.gparsPoolSize = 1
asynchronous.mail.newSessionOnImmediateSend = false
Я вижу эти журналы, когда он успешно отправляет сообщения:
2015-06-14 12:04:11,107 [ForkJoinPool-4071-worker-1] DEBUG asyncmail.AsynchronousMailProcessService - Open new session.
2015-06-14 12:04:17,101 [ForkJoinPool-4071-worker-1] DEBUG asyncmail.AsynchronousMailProcessService - Flush the session.
2015-06-14 12:04:17,101 [ForkJoinPool-4071-worker-1] DEBUG asyncmail.AsynchronousMailProcessService - Destroy the session.
2015-06-14 12:04:17,101 [ForkJoinPool-4071-worker-1] DEBUG asyncmail.AsynchronousMailProcessService - Open new session.
2015-06-14 12:04:23,125 [ForkJoinPool-4071-worker-1] DEBUG asyncmail.AsynchronousMailProcessService - Flush the session.
2015-06-14 12:04:23,125 [ForkJoinPool-4071-worker-1] DEBUG asyncmail.AsynchronousMailProcessService - Destroy the session.
Однако в некоторых случаях он не отправляет электронное письмо, и нет открытого/f lush/destroy в журналах.
Когда я смотрю таблицу async_mail_mess
в базе данных, я вижу, что в элементе электронной почты есть ОШИБКА.
Я не уверен, что вызывает эту прерывистую ошибку и не видит стек из журналов. Должен ли я увеличить максимальное количество попыток? Как поймать эти ошибки?