J'ai un fichier (un btmap appelé secretimage) que je veux joindre à un message lorsque l'utilisateur clique sur un bouton. Je voudrais utiliser Outlook pour cela.Joindre un fichier à un courrier électronique avec Outlook
donc ce que je l'ai fait:
using Outlook = Microsoft.Office.Interop.Outlook;
private void cmdSend_Click(object sender, EventArgs e)
{
Outlook.Application app = new Outlook.Application();
Outlook.MailItem mail = new Outlook.MailItem();
Outlook.Attachment attach = mail.Attachments.Add(secretImage, Outlook.OlAttachmentType.olByValue, 0, "Secret message");
}
Bien que cela me donne l'erreur suivante:
Récupération de l'usine de classe COM pour le composant avec CLSID { 00061033-0000-0000-C000 -000000000046} a échoué en raison de l'erreur suivante: 80040154 Non enregistré (Exception de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
La dernière partie est l'allemand, je ne sais pas pourquoi, en fait j'ai mis la langue à l'anglais. "Klasse nicht registriert" signifie "Classe non enregistrée". J'ai essayé de faire ce qui est recommandé ici: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154
Quelqu'un peut-il m'aider ici? Je suis vraiment coincé. Essayez ce swap votre article de courrier pour ce code, pris à partir de ce lien.
Y a-t-il une raison pour laquelle vous n'utilisez pas l'API Exchange Web Services? –
Eh bien, c'est plus une pratique et j'aimerais le faire de cette façon si possible. – tomet
L'un des problèmes que vous allez rencontrer avec cette méthode est qu'Outlook a mis en place des mesures de sécurité dans lesquelles vous devez autoriser l'envoi d'une application en votre nom. Il vous demandera et il n'y a aucun moyen de par défaut cette réponse sans utiliser un logiciel écrit spécifiquement pour supprimer ce message et y répondre pour vous. Ce n'est pas idéal pour envoyer des emails. Je suggérerais d'utiliser des services Web Exchange ou de permettre à une machine d'être SMTP et d'utiliser l'espace de noms System.Net.Mail. Cependant, vous pouvez utiliser le code que j'ai fourni ci-dessous pour le faire et j'ai testé et cela fonctionne. – Bearcat9425