feat: auth
This commit is contained in:
+9
-10
@@ -1,18 +1,20 @@
|
||||
use super::Env;
|
||||
use lettre::message::Mailbox;
|
||||
use lettre::transport::smtp::authentication::Credentials;
|
||||
use lettre::{Message, SmtpTransport, Transport};
|
||||
use std::env;
|
||||
use std::error::Error;
|
||||
|
||||
pub fn send_email(
|
||||
to: &str,
|
||||
subject: &str,
|
||||
body: &str,
|
||||
) -> Result<(), Box<dyn std::error::Error>> {
|
||||
let sender_email = env::var("SMTP_EMAIL")?.to_string();
|
||||
let sender_name = env::var("SMTP_NAME")?.to_string();
|
||||
let sender_password = env::var("SMTP_PASSWORD")?.to_string();
|
||||
) -> Result<(), Box<dyn Error>> {
|
||||
let env = Env::new();
|
||||
let host = env.smpt_host;
|
||||
let sender_email = env.smtp_email;
|
||||
let sender_name = env.smtp_name;
|
||||
let sender_password = env.smtp_password;
|
||||
let recipient_email = to;
|
||||
|
||||
let email = Message::builder()
|
||||
.from(Mailbox::new(
|
||||
Some(sender_name.replace("-", " ")),
|
||||
@@ -21,14 +23,11 @@ pub fn send_email(
|
||||
.to(recipient_email.parse()?)
|
||||
.subject(subject)
|
||||
.body(body.to_string())?;
|
||||
|
||||
let smtp_credentials =
|
||||
Credentials::new(sender_email, sender_password.replace("-", " "));
|
||||
|
||||
let mailer = SmtpTransport::relay("smtp.gmail.com")?
|
||||
let mailer = SmtpTransport::relay(&host)?
|
||||
.credentials(smtp_credentials)
|
||||
.build();
|
||||
|
||||
match mailer.send(&email) {
|
||||
Ok(_) => {
|
||||
println!("Email sent successfully to {}", to);
|
||||
|
||||
Reference in New Issue
Block a user