2016-11-19 4 views
0

J'essaye d'envoyer des alertes d'email sur ma machine virtuelle using Python. Ceci est mon code:Python: envoyer automatiquement l'email d'Outlook en contournant l'avertissement d'accès par programmation

olMailItem = 0x0 
obj = win32com.client.Dispatch("Outlook.Application") 
newMail = obj.CreateItem(olMailItem) 
newMail.Subject = "subject" 
newMail.Body = "body" 
newMail.To = "me.com" 
newMail.display() 
newMail.send() 

J'ai essayé d'utiliser newMail.send() mais mon Outlook envoyer l'avertissement qui bat le point d'automatiser ces alertes. En outre, je ne peux pas désactiver mes perspectives parce que «Windows n'a pas pu trouver de signature antivirus» sur ma machine.

J'essayé d'utiliser Alt + S après newMail.display(), mais avait du mal parce que la nouvelle mise au point e-mail n'a pas toujours été.

J'ai ensuite utilisé SetForegroundWindow pour veiller à ce qu'il était au point mais a commencé à se pywintypes.error: (0, « SetForegroundWindow », 'Aucun message d'erreur est disponible) autre SO après a suggéré que l'envoi de clés d'abord, puis SettingForegroundWindow résout le problème et cela a fonctionné pour moi. Maintenant, cependant, chaque fois que je ferme la fenêtre de la machine virtuelle (pas la déconnexion) ou qu'elle est verrouillée en raison de l'inactivité, même si le reste du script s'exécute en arrière-plan, j'obtiens pywintypes.error: (5 'SetForegroundWindow', 'Accès refusé') lorsque l'alerte par e-mail est déclenchée

Est-il possible de contourner ces problèmes en envoyant les alertes par e-mail en arrière-plan?

Merci,

Sid

+0

Je pense que vous devriez revenir à votre première approche et modifier votre question: afficher le code que vous utilisez pour envoyer(), et après un message d'erreur (ou un instantané d'erreur/dialogue d'avertissement). Faites-le code exécutable afin que nous puissions le tester sur notre système. Je suis sûr que vous devriez pouvoir envoyer sans MAPI étendu. – Schollii

+0

Bonjour Scholli, merci pour votre réponse. J'ai oublié de mentionner que l'avertissement envoyé par Outlook est - Un programme essaie d'envoyer automatiquement des emails à partir de votre ordinateur. Est-ce OK? J'ai vérifié en ligne et la seule façon de m'en débarrasser, était de permettre l'accès programmé sur Outlook mais mon entreprise a une règle où si la signature antivirus est obsolète, l'accès par programme demandera la permission et bien, sa signature est démodé et ils ont dit qu'il ne peut pas être changé de leur fin. – Sid

+0

@Schollii: Modification du code en conséquence. Pour reproduire l'avertissement relatif aux perspectives, vous devez ouvrir Outlook> Fichier> Options> Centre de gestion de la confidentialité> Paramètres du Centre de gestion de la confidentialité> Accès par programmation et sélectionner Toujours me prévenir des activités suspectes. – Sid

Répondre

0

Puisque vous avez aucun contrôle sur l'anti-virus, vous devriez regarder l'une des nombreuses options discutées à Change Outlook's Programmatic Access Options. MAPI étendu est juste une des nombreuses options, qui fonctionne si elle dépend de beaucoup d'autres détails de votre système.