
< Logging
SMTP Hello World
// create simple plain text email email := Email { to = ["foo@somewhere.com"] from = "bob@foo.com" subject = "hi" body = TextPart { text = "hello world" } } // configure smtp mailer and send email mailer := SmtpClient { host = "mail.foo.com"; username = "bob"; password = "pw" } mailer.send(email)
SMTP Batch Send
// open a session, send multiple emails, and guarantee close mailer.open try { emails.each |Email email| { mailer.send(email) } } finally { mailer.close }
To, CC, BCC
email := Email { to = ["alice@foo.com", "charlie@foo.com"] cc = ["theboss@foo.com", "bob@foo.com"] bcc = ["zack@foo.com"] from = "bob@foo.com" subject = "hi" body = TextPart { text = "hello world" } }
HTML Multipart
email := Email { to = ["alice@foo.com"] from = "bob@foo.com" subject = "html/plain alternative" body = MultiPart { headers["Content-Type"] = "multipart/alternative" parts = [ // put plain text first as backup TextPart { text = "this is bold and italics!" }, // put html part last as best alternative TextPart { headers["Content-Type"] = "text/html" text = "this is <b>bold</b> and <i>italics</i>!" } ] } }
File Attachments
email := Email { to = ["alice@foo.com"] from = "bob@foo.com" subject = "file attachments" body = MultiPart { parts = [ // put body first TextPart { text = "\u00A1Hola Se\u00F1or! This is the body!" }, // attachment 1 FilePart { headers["Content-Disposition"] = "inline" file = `image1.jpg`.toFile }, // attachment 2 FilePart { headers["Content-Disposition"] = "attachment; filename=image2.jpg" file = `image2.jpg`.toFile } ] } }
Debug
// turn on tracing mailer.log.level = LogLevel.trace // dump email to stdout email.encode(Sys.out)
< Logging