#body #parser #smtp #api-bindings #io-read #dkim-validator

bin+lib letterman_email_body_parser

这是一个基于 tokio 的快速优化的电子邮件正文解析器和 DKIM 验证器

6 个稳定版本

1.0.5 2022 年 3 月 4 日
1.0.3 2021 年 12 月 13 日
1.0.2 2021 年 12 月 9 日
1.0.1 2021 年 12 月 8 日

#168电子邮件


用于 letterman

GPL-3.0 许可证

50KB
1K SLoC

letterman_email_body_parser

这是一个基于 tokio 的电子邮件正文解析器和 DKIM 验证器,输入不应包含数据结束标志 "\r\n.\r\n",DKIM 密钥在 tokio RwLock 中缓存以加快读取速度,如果没有提供 DKIM,验证将返回成功。

示例代码


use letterman_email_body_parser::{init,Config,io};

#[tokio::main]
async fn main() {

    //io is for testing this is exposed as a module so keep that in mind
    let value:String;
    match io::read_string("./gl_alt_atch.txt"){
        Ok(v)=>{value = v;},
        Err(_)=>{
            println!("failed-read_file");
            return;
        }
    }

    let hold:Vec<&str> = value.split("\r\n").collect();
  
    let conf:Config;
    match Config::new(){
        Ok(v)=>{conf = v;},
        Err(_)=>{
            println!("failed-conf");
            return;
        }
    }

    match init(hold,&conf){
        Ok(mut email)=>{
            println!("email body parsed");
            match email.validate(&conf).await{
                Ok(_)=>{
                    println!("email validated");
                },
                Err(_e)=>{
                    println!("email validation failed : {:?}",_e);
                }
            }
        },
        Err(_e)=>{
            println!("email body failed : {:?}",_e);
        }
    }

}

依赖项

~11–20MB
~282K SLoC