linux下c代码如何把指定文件作为附件,通过evolution发送邮件

本文介绍了一个名为FreeCamera的应用程序中的邮件发送功能实现。该功能通过查找并使用Evolution的不同版本来附带指定文件并通过邮件发送出去。代码中包含了如何获取Evolution不同版本路径的方法及如何将文件作为附件发送的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

author: CarlsonLee(carlsonlee.freec@hotmail.com),  本代码是freecamera的一部分,freecamera源代码存在:http://gitorious.org/freecamera


static char * get_evo_cmd (void)
{
    char *tmp = NULL;
    char *retval;
    char *cmds[] = {"evolution",
        "evolution-2.0",
        "evolution-2.2",
        "evolution-2.4",
        "evolution-2.6",
        "evolution-2.8", /* for the future */
        "evolution-3.0", /* but how far to go ? */
        NULL};
    guint i;
 
    
    for (i = 0; cmds[i] != NULL; i++) {
        tmp = g_find_program_in_path (cmds[i]);
        if (tmp != NULL)
            break;
    }
 
    if (tmp == NULL)
        return NULL;
 
    retval = g_strdup_printf ("%s --component=mail %%s", tmp);
    g_free (tmp);
    return retval;
}
 
void camutil_send_file(const char *file_name)
{
    gchar *cmd;
    GString *mailto;
    char *mail_cmd = get_evo_cmd();
    
    mailto = g_string_new ("");
    g_string_append (mailto, "mailto:");
    g_string_append (mailto, "/"/"");
    g_string_append_printf (mailto,"?attach=/"%s/"", file_name);
    cmd = g_strdup_printf (mail_cmd, mailto->str);
    g_string_free (mailto, TRUE);
    g_spawn_command_line_async (cmd, NULL);
    g_free (cmd);
    g_free (mail_cmd);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值