You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importlumenmail/messageimportlumenmail/smtppubfnmain(){// Build the email messageletemail=message.new()|>message.from_name_email("John Doe","[email protected]")|>message.to_email("[email protected]")|>message.subject("Hello from Gleam!")|>message.text_body("This is a test email sent with lumenmail.")// Connect to SMTP server and sendletassertOk(client)=smtp.builder("smtp.example.com",587)|>smtp.auth("username","password")|>smtp.connect()letassertOk(_)=smtp.send(client,email)letassertOk(_)=smtp.close(client)}
Examples
Simple Text Email
importlumenmail/messageimportlumenmail/smtppubfnsend_simple_email(){letemail=message.new()|>message.from_email("[email protected]")|>message.to_email("[email protected]")|>message.subject("Hello!")|>message.text_body("This is a plain text email.")letassertOk(client)=smtp.builder("smtp.example.com",587)|>smtp.auth("user","password")|>smtp.connect()letassertOk(_)=smtp.send(client,email)letassertOk(_)=smtp.close(client)}
importlumenmail/messageimportlumenmail/smtppubfnsend_via_gmail(){letemail=message.new()|>message.from_email("[email protected]")|>message.to_email("[email protected]")|>message.subject("Sent from Gmail")|>message.text_body("Hello from Gmail!")// Gmail uses port 587 with STARTTLSletassertOk(client)=smtp.builder("smtp.gmail.com",587)|>smtp.auth("[email protected]","your-app-password")|>smtp.connect()letassertOk(_)=smtp.send(client,email)letassertOk(_)=smtp.close(client)}
Using Implicit TLS (Port 465)
importlumenmail/messageimportlumenmail/smtppubfnsend_with_implicit_tls(){letemail=message.new()|>message.from_email("[email protected]")|>message.to_email("[email protected]")|>message.subject("Secure Email")|>message.text_body("Sent over implicit TLS.")// Port 465 automatically uses implicit TLSletassertOk(client)=smtp.builder("smtp.example.com",465)|>smtp.auth("user","password")|>smtp.connect()letassertOk(_)=smtp.send(client,email)letassertOk(_)=smtp.close(client)}
OAuth2 Authentication
importlumenmail/messageimportlumenmail/smtpimportlumenmail/typespubfnsend_with_oauth2(){letemail=message.new()|>message.from_email("[email protected]")|>message.to_email("[email protected]")|>message.subject("OAuth2 Email")|>message.text_body("Sent using OAuth2!")letassertOk(client)=smtp.builder("smtp.gmail.com",587)|>smtp.credentials(types.OAuth2("[email protected]","oauth2-access-token"))|>smtp.connect()letassertOk(_)=smtp.send(client,email)letassertOk(_)=smtp.close(client)}
Sending Multiple Emails (Connection Reuse)
importlumenmail/messageimportlumenmail/smtppubfnsend_multiple_emails(){letassertOk(client)=smtp.builder("smtp.example.com",587)|>smtp.auth("user","password")|>smtp.connect()// Send first emailletemail1=message.new()|>message.from_email("[email protected]")|>message.to_email("[email protected]")|>message.subject("Email 1")|>message.text_body("First email")letassertOk(_)=smtp.send(client,email1)// Reset connection stateletassertOk(_)=smtp.reset(client)// Send second emailletemail2=message.new()|>message.from_email("[email protected]")|>message.to_email("[email protected]")|>message.subject("Email 2")|>message.text_body("Second email")letassertOk(_)=smtp.send(client,email2)letassertOk(_)=smtp.close(client)}