
2749 - Message text not included in reply, but html attachment is 4294 - "forward inline" should quote the same headers as the normal mail display 6100 - Reply to a forwarded email displays email headers 7255 - Replying to HTML message 7527 - replying to forwarded message w/ attachments does the wrong thing * mail-format.c (mail_get_message_rfc822): New function to get message headers and body together, for inline forwards, or replies containing attached messages. (mail_get_message_body): Redo this to always return HTML, but keep the "want_plain" flag, to decide whether to return HTML that looks like HTML or HTML that looks like plain text. Use mail_get_message_rfc822 to handle attached message/rfc822 parts. Don't include the text of vcard or icalendar attachments. Don't fail to include text parts just because we found an HTML part. (Since we're always returning HTML now, this doesn't cause problems any more.) * mail-tools.c (mail_tool_quote_message): Simplify greatly. mail_get_message_body always returns HTML now, and we let it take care of prepending "> "s too. We then let GtkHTML deal with converting the HTML to plain text if the user wants to reply in plain text. (mail_tool_forward_message): Simplify this a ton too: parts of it are moved into mail_get_message_rfc822 and parts are now unnecessary. * mail-callbacks.c (do_forward_non_attached): Call mail_tool_forward_message here always, and let it do the "> " quoting in the "quoted" case, so that we get the headers too when forwarding quoted. Related to bug #4294. svn path=/trunk/; revision=12657
93 lines
3.2 KiB
C
93 lines
3.2 KiB
C
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
|
|
/*
|
|
* Author :
|
|
* Peter Williams <peterw@ximian.com>
|
|
*
|
|
* Copyright 2000 Ximian, Inc. (www.ximian.com)
|
|
*
|
|
* This program 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 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program 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 this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
* USA
|
|
*/
|
|
|
|
#ifndef MAIL_TOOLS_H
|
|
#define MAIL_TOOLS_H
|
|
|
|
#include <camel/camel.h>
|
|
#include <camel/camel-filter-driver.h> /*eek*/
|
|
|
|
typedef struct xevolution {
|
|
char *flags;
|
|
char *source;
|
|
char *transport;
|
|
char *account;
|
|
char *fcc;
|
|
} XEvolution;
|
|
|
|
/* Get a CamelFolder from a root url and a foldername (uses the global session)*/
|
|
CamelFolder *
|
|
mail_tool_get_folder_from_urlname (const gchar *url, const gchar *name,
|
|
guint32 flags, CamelException *ex);
|
|
|
|
/* Get a useful name for a given CamelFolder (ie, not "mbox") */
|
|
char *mail_tool_get_folder_name (CamelFolder *folder);
|
|
|
|
/* Get the filename for our movemail folder or storage */
|
|
gchar *mail_tool_get_local_movemail_path (void);
|
|
|
|
/* Get the CamelFolder for the local inbox */
|
|
CamelFolder *mail_tool_get_local_inbox (CamelException *ex);
|
|
|
|
/* Get the "inbox" for a url (uses global session) */
|
|
CamelFolder *mail_tool_get_inbox (const gchar *url, CamelException *ex);
|
|
|
|
/* Get the "trash" for a url (uses global session) */
|
|
CamelFolder *mail_tool_get_trash (const gchar *url, CamelException *ex);
|
|
|
|
/* Does a camel_movemail into the local movemail folder
|
|
* and returns the path to the new movemail folder that was created. which shoudl be freed later */
|
|
char *
|
|
mail_tool_do_movemail (const gchar *source_url, CamelException *ex);
|
|
|
|
/* Transfers all the messages from source into dest;
|
|
* source is emptied and synced. */
|
|
void
|
|
mail_tool_move_folder_contents (CamelFolder *source, CamelFolder *dest, gboolean use_cache, CamelException *ex);
|
|
|
|
XEvolution *mail_tool_remove_xevolution_headers (CamelMimeMessage *message);
|
|
void mail_tool_restore_xevolution_headers (CamelMimeMessage *message, XEvolution *xev);
|
|
void mail_tool_destroy_xevolution (XEvolution *xev);
|
|
|
|
/* Generates the subject for a message forwarding @msg */
|
|
gchar *
|
|
mail_tool_generate_forward_subject (CamelMimeMessage *msg);
|
|
|
|
/* Make a message into an attachment */
|
|
CamelMimePart *
|
|
mail_tool_make_message_attachment (CamelMimeMessage *message);
|
|
|
|
/* Parse the ui into a real CamelFolder any way we know how. */
|
|
CamelFolder *
|
|
mail_tool_uri_to_folder (const char *uri, CamelException *ex);
|
|
|
|
GHashTable *
|
|
mail_lookup_url_table (CamelMimeMessage *mime_message);
|
|
|
|
gchar *mail_tool_quote_message (CamelMimeMessage *message, const char *fmt, ...);
|
|
|
|
gchar *mail_tool_forward_message (CamelMimeMessage *message, gboolean quoted);
|
|
|
|
#endif
|