javamail и sendmail занимают ~17 минут, чтобы отправить первое письмо
Мое приложение на базе clojure и ring хорошо работает на моем Ubuntu 14.04.
Система входа в систему "получить ссылку электронной почты, чтобы нажать на нее", поэтому сначала пользователь должен ввести свою электронную почту.
Когда я запускаю приложение, используя
java -jar app.jar
Он запускает сервер, и все хорошо, но кажется, что в целом javax.mail (и, возможно, sendmail?) Занимает много времени для разрешения некоторых имен хостов или чего-то еще.
Я просто пробовал бегать
sudo sendmailconfig
после установки sendmail.
Примерно через 17 минут нет никаких задержек, и электронные письма приходят отлично, но до этого момента система просто "зависает" при отправке электронной почты.
Любой совет приветствуется.
Некоторый код:
(ns pachax.handler
(:require [postal.core :as mailmail]))
(mailmail/send-message
{:host secrets/host,
:user secrets/user,
:pass secrets/pass
:ssl true}
{:from secrets/user,
:to username-input,
:subject "PracticalHuman Login Link Requested."
:body body-message})
Что не является чем-то особенным, помогает немного углубиться в то, из чего на самом деле состоит почта:
https://github.com/drewr/postal/search?utf8=%E2%9C%93&q=smtp-send
(defn ^:dynamic smtp-send* [^Session session ^String proto
(.sendMessage transport jmsg (.getAllRecipients jmsg)))
{:code 0 :error :SUCCESS :message "messages sent"})))
который использует transport.sendMessage (я думаю)
Некоторый соответствующий исходный код находится в sendmail.clj https://github.com/drewr/postal/blob/4b445ef606f1bdeab832a7179595a41832be3edb/src/postal/sendmail.clj
(def sendmails ["/usr/lib/sendmail"
"/usr/sbin/sendmail"
"/usr/bin/sendmail"
"/usr/local/lib/sendmail"
"/usr/local/sbin/sendmail"
"/usr/local/bin/sendmail"
"/usr/sbin/msmtp"])
поэтому я не уверен, какая программа sendmail вызывается и как задействован javax.mail.
Extra info:
1) visit website, enter your e-mail
2) sends you an email and then displays a message saying you got a link
3) you click the link and you are in.
Система "зависает" на шаге 2, где первоначальная партия сообщений электронной почты будет просто "загружать" сайт с результатом POST, который на самом деле будет просто сообщением "эй, вы получили ссылку".
Примерно через 17 минут все письма появляются в моем почтовом ящике, а затем запросы на новые ссылки обрабатываются очень быстро.