[][src]Module ashpd::desktop::email

Compose an email.

Examples

Compose an email

use ashpd::desktop::email::{EmailProxy, EmailOptions};
use ashpd::{RequestProxy, Response, WindowIdentifier, BasicResponse as Basic};
use zbus::{fdo::Result, Connection};
use zvariant::Fd;
use std::fs::File;
use std::os::unix::io::AsRawFd;

fn main() -> Result<()> {
    let connection = Connection::new_session()?;
    let proxy = EmailProxy::new(&connection)?;

    let file = File::open("/home/bilelmoussaoui/Downloads/adwaita-night.jpg").unwrap();

    let handle = proxy.compose_email(
        WindowIdentifier::default(),
        EmailOptions::default()
            .address("test@gmail.com")
            .subject("email subject")
            .body("the pre-filled email body")
            .attach(Fd::from(file.as_raw_fd()))
    )?;

    let request = RequestProxy::new(&connection, &handle)?;
    request.on_response(|r: Response<Basic>| {
        println!("{}", r.is_ok());
    })?;

    Ok(())
}

Structs

EmailOptions

Specified options for a compose email request.

EmailProxy

The interface lets sandboxed applications request sending an email.