reorganize is_permissible_email() into email.rs
This commit is contained in:
parent
7893aa65e3
commit
3f7e0018c3
2 changed files with 11 additions and 11 deletions
|
@ -9,7 +9,6 @@ use axum::{
|
|||
use axum_extra::extract::Form;
|
||||
use diesel::prelude::*;
|
||||
use rand::Rng as _;
|
||||
use regex::Regex;
|
||||
use serde::Deserialize;
|
||||
use uuid::Uuid;
|
||||
|
||||
|
@ -18,7 +17,7 @@ use crate::{
|
|||
app_state::{AppState, DbConn},
|
||||
channels::{BackendConfig, Channel, EmailBackendConfig, CHANNEL_BACKEND_EMAIL},
|
||||
csrf::generate_csrf_token,
|
||||
email::{MailSender as _, Mailer},
|
||||
email::{is_permissible_email, MailSender as _, Mailer},
|
||||
guards,
|
||||
nav::{BreadcrumbTrail, Navbar, NavbarBuilder, NAVBAR_ITEM_CHANNELS},
|
||||
schema::channels,
|
||||
|
@ -374,15 +373,6 @@ async fn update_channel_email_recipient(
|
|||
)))
|
||||
}
|
||||
|
||||
/// Returns true if the email address matches a format recognized as "valid".
|
||||
/// Not all "legal" email addresses will be accepted, but addresses that are
|
||||
/// "illegal" and/or could result in unexpected behavior should be rejected.
|
||||
fn is_permissible_email(address: &str) -> bool {
|
||||
let re = Regex::new(r"^[a-zA-Z0-9._+-]+@([a-zA-Z0-9_-]+.)+[a-zA-Z]+$")
|
||||
.expect("email validation regex should parse");
|
||||
re.is_match(address)
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct VerifyEmailFormBody {
|
||||
csrf_token: String,
|
||||
|
|
10
src/email.rs
10
src/email.rs
|
@ -2,12 +2,22 @@ use anyhow::{Context, Result};
|
|||
use axum::extract::FromRef;
|
||||
use futures::Future;
|
||||
use lettre::{AsyncSmtpTransport, AsyncTransport, Tokio1Executor};
|
||||
use regex::Regex;
|
||||
use serde::{Serialize, Serializer};
|
||||
|
||||
use crate::app_state::AppState;
|
||||
|
||||
const POSTMARK_EMAIL_BATCH_URL: &str = "https://api.postmarkapp.com/email/batch";
|
||||
|
||||
/// Returns true if the email address matches a format recognized as "valid".
|
||||
/// Not all "legal" email addresses will be accepted, but addresses that are
|
||||
/// "illegal" and/or could result in unexpected behavior should be rejected.
|
||||
pub fn is_permissible_email(address: &str) -> bool {
|
||||
let re = Regex::new(r"^[a-zA-Z0-9._+-]+@([a-zA-Z0-9_-]+.)+[a-zA-Z]+$")
|
||||
.expect("email validation regex should parse");
|
||||
re.is_match(address)
|
||||
}
|
||||
|
||||
#[derive(Clone, Serialize)]
|
||||
pub struct Message {
|
||||
#[serde(rename = "From")]
|
||||
|
|
Loading…
Add table
Reference in a new issue