├── .github └── workflows │ └── scala.yml ├── .gitignore ├── .scalafix.conf ├── .scalafmt.conf ├── LICENSE.txt ├── README.md ├── project ├── build.properties └── plugins.sbt ├── sonatype.sbt ├── src ├── main │ └── scala │ │ └── pencil │ │ ├── Client.scala │ │ ├── ContentTypeFinder.scala │ │ ├── Files.scala │ │ ├── Request.scala │ │ ├── Smtp.scala │ │ ├── SmtpSocket.scala │ │ ├── data │ │ ├── Attachment.scala │ │ ├── Bcc.scala │ │ ├── Body.scala │ │ ├── Boundary.scala │ │ ├── Cc.scala │ │ ├── Credentials.scala │ │ ├── Email.scala │ │ ├── Error.scala │ │ ├── From.scala │ │ ├── Host.scala │ │ ├── Mailbox.scala │ │ ├── MailboxCodec.scala │ │ ├── MailboxParser.scala │ │ ├── Name.scala │ │ ├── Subject.scala │ │ └── To.scala │ │ ├── package.scala │ │ ├── protocol │ │ ├── Code.scala │ │ ├── Command.scala │ │ ├── CommandCodec.scala │ │ ├── ContentType.scala │ │ ├── DelimiterListCodec.scala │ │ ├── Encoding.scala │ │ ├── Header.scala │ │ ├── Reply.scala │ │ └── ScodecCompat.scala │ │ └── syntax │ │ └── LiteralsSyntax.scala └── test │ ├── resources │ ├── certs │ │ ├── certificate.crt │ │ ├── keyfile.key │ │ └── pass.txt │ ├── files │ │ ├── ascii-sample.txt │ │ ├── gif-sample.gif │ │ ├── html-sample.html │ │ ├── image-sample.png │ │ ├── jpeg-sample.jpg │ │ ├── rfc2045.pdf │ │ └── small.png │ ├── logback.xml │ └── output.txt │ └── scala │ └── pencil │ ├── ContentTypeFinderSpec.scala │ ├── DataSamples.scala │ ├── In.scala │ ├── MailServerContainer.scala │ ├── MailServerSpec.scala │ ├── SendEmailSpec.scala │ ├── SmtpBaseSpec.scala │ ├── SmtpIntegrationSpec.scala │ ├── SmtpServer.scala │ ├── SmtpSpec.scala │ ├── SmtpSpec2.scala │ ├── data │ ├── EmailGens.scala │ ├── EmailSpec.scala │ ├── HostSpec.scala │ └── MailboxParserSpec.scala │ └── protocol │ ├── ProtocolGens.scala │ └── ProtocolSpec.scala └── version.sbt /.github/workflows/scala.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/.github/workflows/scala.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/.gitignore -------------------------------------------------------------------------------- /.scalafix.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/.scalafix.conf -------------------------------------------------------------------------------- /.scalafmt.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/.scalafmt.conf -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/README.md -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.11.7 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /sonatype.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/sonatype.sbt -------------------------------------------------------------------------------- /src/main/scala/pencil/Client.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/Client.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/ContentTypeFinder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/ContentTypeFinder.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/Files.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/Files.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/Request.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/Request.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/Smtp.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/Smtp.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/SmtpSocket.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/SmtpSocket.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Attachment.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Attachment.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Bcc.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Bcc.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Body.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Body.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Boundary.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Boundary.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Cc.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Cc.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Credentials.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Credentials.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Email.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Email.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Error.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Error.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/From.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/From.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Host.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Host.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Mailbox.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Mailbox.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/MailboxCodec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/MailboxCodec.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/MailboxParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/MailboxParser.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Name.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Name.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/Subject.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/Subject.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/data/To.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/data/To.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/package.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/Code.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/Code.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/Command.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/Command.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/CommandCodec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/CommandCodec.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/ContentType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/ContentType.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/DelimiterListCodec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/DelimiterListCodec.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/Encoding.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/Encoding.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/Header.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/Header.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/Reply.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/protocol/Reply.scala -------------------------------------------------------------------------------- /src/main/scala/pencil/protocol/ScodecCompat.scala: -------------------------------------------------------------------------------- 1 | package pencil.protocol 2 | 3 | trait ScodecCompat {} 4 | -------------------------------------------------------------------------------- /src/main/scala/pencil/syntax/LiteralsSyntax.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/main/scala/pencil/syntax/LiteralsSyntax.scala -------------------------------------------------------------------------------- /src/test/resources/certs/certificate.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/certs/certificate.crt -------------------------------------------------------------------------------- /src/test/resources/certs/keyfile.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/certs/keyfile.key -------------------------------------------------------------------------------- /src/test/resources/certs/pass.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/certs/pass.txt -------------------------------------------------------------------------------- /src/test/resources/files/ascii-sample.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /src/test/resources/files/gif-sample.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/files/gif-sample.gif -------------------------------------------------------------------------------- /src/test/resources/files/html-sample.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/files/html-sample.html -------------------------------------------------------------------------------- /src/test/resources/files/image-sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/files/image-sample.png -------------------------------------------------------------------------------- /src/test/resources/files/jpeg-sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/files/jpeg-sample.jpg -------------------------------------------------------------------------------- /src/test/resources/files/rfc2045.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/files/rfc2045.pdf -------------------------------------------------------------------------------- /src/test/resources/files/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/files/small.png -------------------------------------------------------------------------------- /src/test/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/logback.xml -------------------------------------------------------------------------------- /src/test/resources/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/resources/output.txt -------------------------------------------------------------------------------- /src/test/scala/pencil/ContentTypeFinderSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/ContentTypeFinderSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/DataSamples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/DataSamples.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/In.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/In.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/MailServerContainer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/MailServerContainer.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/MailServerSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/MailServerSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/SendEmailSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/SendEmailSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/SmtpBaseSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/SmtpBaseSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/SmtpIntegrationSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/SmtpIntegrationSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/SmtpServer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/SmtpServer.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/SmtpSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/SmtpSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/SmtpSpec2.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/SmtpSpec2.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/data/EmailGens.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/data/EmailGens.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/data/EmailSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/data/EmailSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/data/HostSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/data/HostSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/data/MailboxParserSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/data/MailboxParserSpec.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/protocol/ProtocolGens.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/protocol/ProtocolGens.scala -------------------------------------------------------------------------------- /src/test/scala/pencil/protocol/ProtocolSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minosiants/pencil/HEAD/src/test/scala/pencil/protocol/ProtocolSpec.scala -------------------------------------------------------------------------------- /version.sbt: -------------------------------------------------------------------------------- 1 | ThisBuild / version := "2.1.2-SNAPSHOT" 2 | --------------------------------------------------------------------------------