commit - ccb62d531454eb4b79b334d3d72be07aa85f4101
commit + e8c5640f7c0c84e3a3da2f141895ba422f96924c
blob - 98c81d0675870c295c157e7fb817f9132755c138
blob + 35075ef09abae29483866db27c732082673f405a
--- src/mail.rs
+++ src/mail.rs
message::Message,
transport::smtp::{
authentication::Credentials,
- client::{Tls, TlsParameters},
SmtpTransport,
},
Transport,
config.smtp.password.to_string(),
);
- // TODO: allow TLS, specify via config?
- // https://todo.sr.ht/~witcher/rss-email/8
- let tls = TlsParameters::builder(config.smtp.server.to_string())
- .dangerous_accept_invalid_certs(true)
- .build()?;
-
let mailer = SmtpTransport::relay(&config.smtp.server)?
- .tls(Tls::Opportunistic(tls))
.credentials(creds)
.port(config.smtp.port)
.build();
blob - 3e3c0785340d6941347d6763d076362cb20d4381
blob + 9ea9a0498d0ccb417849f6b9114dacbb4590bf26
--- src/main.rs
+++ src/main.rs
let results = posts
.filter(sent.eq(false))
.order(pub_date.desc())
- .limit(5)
.load::<models::Post>(&conn)?;
- send_posts(&config, results, args.dry_run)?;
+ send_posts(&conn, &config, results, args.dry_run)?;
Ok(())
}
-fn send_posts(config: &Config, items: Vec<models::Post>, dry_run: bool) -> anyhow::Result<()> {
+fn send_posts(conn: &SqliteConnection, config: &Config, items: Vec<models::Post>, dry_run: bool) -> anyhow::Result<()> {
let mailer = get_mailer(config)?;
for mut post in items {
if !dry_run {
send_email(config, subject, body, &mailer)?;
}
post.sent = true;
+ diesel::update(schema::posts::dsl::posts.find(post.guid)).set(sent.eq(true)).execute(conn)?;
}
- // TODO: mark posts as sent in database, too
Ok(())
}