summaryrefslogtreecommitdiff
path: root/mail/envelope.c
blob: 4bd1a1eca2e7f682a9d14869b29a0a51205ea358 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* GNU Mailutils -- a suite of utilities for electronic mail
   Copyright (C) 2009-2024 Free Software Foundation, Inc.

   GNU Mailutils is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.

   GNU Mailutils is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>. */

#include "mail.h"

/*
 * env[elope] [msglist]
 */

int
print_stream_envelope (mu_stream_t str, msgset_t *mspec, mu_message_t msg,
		       char const *pfx)
{
  int status;
  mu_envelope_t env = NULL;
  const char *sender = NULL, *date = NULL;

  status = mu_message_get_envelope (msg, &env);
  if (status)
    {
      mu_error (_("%lu: Cannot get envelope"),
		(unsigned long) msgset_msgno (mspec));
    }
  else
    {
      mu_envelope_sget_sender (env, &sender);
      mu_envelope_sget_date (env, &date);
      if (pfx)
	mu_stream_printf (str, "%s ", pfx);
      mu_stream_printf (str, "%s %s\n", sender, date);
    }
  return 0;
}

static int
print_envelope (msgset_t *mspec, mu_message_t msg, void *data)
{
  return print_stream_envelope (mu_strout, mspec, msg, data);
}

int
mail_envelope (int argc, char **argv)
{
  return util_foreach_msg (argc, argv, MSG_NODELETED|MSG_SILENT,
			   print_envelope, NULL);
}

Return to:

Send suggestions and report system problems to the System administrator.