Por algum motivo, muitas vezes eu tenho um problema de liberação de fila quando a mensagem entregue é sempre um atrás do realmente enviado. James está configurado para enviar mensagens de entrada para o gateway (Postfix).
A classe RemoteDelivery tem isso:
// Set it to try to deliver (in a separate thread) immediately
// (triggered by storage)
O que exatamente é "armazenamento" e onde está configurado?
Eu configurei um mailet que envia mensagens correspondentes (com base no domínio do destinatário) para o gateway (especificado no mailetcontainer). Isso funciona bem até algum ponto em que fica "preso" para ser entregue ao gateway. Nos logs de James mostra como Successfully spooled mail
do remetente e depois mostra como
[TID=83] INFO 11:04:54,858 | james.smtpserver | Id='1510412390' User='' Successfully spooled mail Mail1581005094857-978ba32f-74e6-4ca1-b903-7994637a9873 from <address@remote> on <remote sender IP> for [<address@local>]
...
[TID=734] INFO 11:04:55,290 | james.mailetcontext | Remotely delivering mail Mail1581005094857-978ba32f-74e6-4ca1-b903-7994637a9873
[TID=34] INFO 11:04:55,290 | james.mailetcontext | Remote delivery thread (0) will process mail Mail1581005072858-90055113-03cf-4bc0-84d7-d47d176feef2
[TID=34] INFO 11:04:55,290 | james.mailetcontext | Attempting to deliver Mail1581005072858-90055113-03cf-4bc0-84d7-d47d176feef2
[TID=734] INFO 11:04:55,312 | james.mailetcontext | Adding SMTP gateway: <gateway address>
[TID=734] INFO 11:04:55,312 | james.mailetcontext | Sending mail to [<address@local>] via [<gateway address>]
[TID=34] INFO 11:04:55,312 | james.mailetcontext | Adding SMTP gateway: <gateway adrdress>
[TID=34] INFO 11:04:55,312 | james.mailetcontext | Attempting delivery of Mail1581005072858-90055113-03cf-4bc0-84d7-d47d176feef2 to host <gateway adrdress> at <gateway adrdress> from <address@remote> for addresses [<address@local>]]
mas não vejo que o Mail foi enviado com sucesso para o gateway.
Para obtê-lo "desbloqueado" eu preciso ter outra mensagem de entrada para ser enviada para o James que atingirá o mesmo mailet para empurrar a mensagem anterior para ser spool que ficou presa antes. Em seguida, nos logs de James, aparecerá como
[TID=35] INFO 11:22:14,443 | james.mailetcontext | Mail (Mail1581005094857-978ba32f-74e6-4ca1-b903-7994637a9873) sent successfully to <gateway adrdress> at <gateway adrdress> from <address@remote> for [[<address@local>]]
Tudo parece que se o host de retransmissão mudar, a fila relacionada pode começar a se comportar de maneira diferente, agindo como um tubo de papel toalha com bolas de pingue-pongue empurradas em uma extremidade. Somente quando bolas suficientes foram empurradas para tirar uma da outra extremidade. Alguma opinião sobre isso?
Surgiu que o ActiveMQ ver 5.4.2 tem um problema. Atualizado para 5.5.1 e o problema da fila desapareceu.