Podem baixar o aplicativo completo em SalvaAnexosOutlook2007.exe (93,50 kb). Não precisa instalar. Copie para uma pasta qualquer que já funciona. Só uma coisa: ele remove todos os anexos dos e-mails.
Em caso de dúvidas, podem me mandar uma mensagem, usando o link existente no programinha.

E, se quiser ver o código, é esse (não se esqueça de adicionar a referência para o Microsoft.Office.Interop.Outlook):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using SWF = System.Windows.Forms;
using Microsoft.Office.Interop.Outlook;
using System.Text.RegularExpressions;
namespace SalvaAnexosOutlook2007
{
public partial class Form1 : SWF.Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Application myApp = new ApplicationClass();
foreach (Folder f in myApp.GetNamespace("MAPI").Folders)
listBox1.Items.Add(f.Name);
listBox1.SelectedIndex = 0;
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
listBox2.Items.Clear();
Application myApp = new ApplicationClass();
foreach (Folder f in myApp.GetNamespace("MAPI")
.Folders[listBox1.SelectedIndex + 1].Folders)
listBox2.Items.Add(f.Name);
}
}
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (SWF.MessageBox.Show(
"Tem certeza que quer salvar os anexos das mensagens selecionadas?" +
"\n\nIsso apagará os anexos do seu e-mail!!!", "Responda",
SWF.MessageBoxButtons.YesNo,
SWF.MessageBoxIcon.Question)
== SWF.DialogResult.Yes)
{
Application myApp = new ApplicationClass();
foreach (Folder f in myApp.GetNamespace("MAPI")
.Folders[listBox1.SelectedIndex + 1].Folders)
{
if (f.Name.Equals(listBox2.SelectedItem.ToString()))
{
foreach (object email in (f.Items))
{
MailItem mail = email as MailItem;
int contador;
if (mail != null)
{
contador = 0;
while (mail.Attachments.Count > 0 && contador <= 10)
{
Attachment mi = mail.Attachments[1] as Attachment;
if (mi != null)
{
string nomeAtt = null;
try
{
nomeAtt = SWF.Application.StartupPath
+ @"\" + f.Name
+ "_" + mail.SentOn.ToString("yyyyMMddHHmmss")
+ "_" + Limpar(mail.Subject)
+ "_" + Limpar(mi.DisplayName);
mi.SaveAsFile(nomeAtt);
label1.Text = mi.DisplayName;
SWF.Application.DoEvents();
mi.Delete();
}
catch
{
contador++;
}
}
}
if (mail != null)
mail.Save();
}
}
if (SWF.MessageBox.Show(
"Arquivos gravados - quer abrir a pasta?",
"FIM DO PROCESSO",
SWF.MessageBoxButtons.YesNo,
SWF.MessageBoxIcon.Question)
== SWF.DialogResult.Yes)
{
System.Diagnostics.Process.Start(
SWF.Application.StartupPath);
SWF.Application.Exit();
}
}
}
}
}
private String Limpar(String s)
{
return Regex.Replace(s, "[\"@/{}<>():|;\\?*&%$]", String.Empty);
}
private void linkLabel1_LinkClicked(object sender, SWF.LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(http://www.50minutos.com.br/FaleConosco.aspx);
}
}
}