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 минут все письма появляются в моем почтовом ящике, а затем запросы на новые ссылки обрабатываются очень быстро.

0 ответов

Другие вопросы по тегам