diff --git a/.gitignore b/.gitignore index 23ec656..9809beb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /doc/ /lib/ /bin/ +test/* /.shards/ # Libraries don't need dependency lock diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..16b4eb5 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +URL=http://central.maven.org/maven2/com/icegreen/greenmail-standalone/1.5.8/greenmail-standalone-1.5.8.jar +JAR=greenmail.jar +PARAMS=-Dgreenmail.verbose -Dgreenmail.setup.test.imaps -Dgreenmail.users=test:test@test.org + +.PHONY: clean + +clean: + rm -f test/* + +test_server: test/greenmail.jar + java ${PARAMS} -jar test/${JAR} + +test/greenmail.jar: + wget -O test/${JAR} ${URL} diff --git a/spec/imap_spec.cr b/spec/imap_spec.cr index 4cd35b4..427c464 100644 --- a/spec/imap_spec.cr +++ b/spec/imap_spec.cr @@ -4,7 +4,9 @@ describe Imap do # TODO: Write tests it "should count emails in mailbox" do - imap = Imap::Client.new(host: "imap.gmail.com", port: 993, username: "***", password: "***") + imap = Imap::Client.new(host: "127.0.0.1", port: 3993, + username: "test", password: "test", + verify: OpenSSL::SSL::VerifyMode::NONE) mailboxes = imap.list if mailboxes.size > 0 mailbox = mailboxes.first diff --git a/src/imap.cr b/src/imap.cr index 726982b..004402d 100644 --- a/src/imap.cr +++ b/src/imap.cr @@ -12,12 +12,16 @@ module Imap @logger : Logger @idling = false - def initialize(host = "imap.gmail.com", port = 993, username = "", password = "", loglevel = Logger::ERROR) + def initialize(host = "imap.gmail.com", port = 993, username = "", password = "", + loglevel = Logger::ERROR, verify = OpenSSL::SSL::VerifyMode::PEER) @logger = Logger.new(STDERR) @logger.level = loglevel @socket = TCPSocket.new(host, port) - tls_socket = OpenSSL::SSL::Socket::Client.new(@socket.as(TCPSocket), sync_close: true, hostname: host) + context = OpenSSL::SSL::Context::Client.new + context.verify_mode = verify + tls_socket = OpenSSL::SSL::Socket::Client.new(@socket.as(TCPSocket), + context: context, sync_close: true, hostname: host) tls_socket.sync = false @socket = tls_socket diff --git a/test/.gitignore b/test/.gitignore new file mode 100644 index 0000000..e69de29