मैं Outlook 2003
का उपयोग कर रहा हूं।पायथन के माध्यम से आउटलुक ईमेल भेजें?
Python
का उपयोग कर ईमेल भेजने के लिए सबसे अच्छा तरीका क्या है (Outlook 2003
)?
मैं Outlook 2003
का उपयोग कर रहा हूं।पायथन के माध्यम से आउटलुक ईमेल भेजें?
Python
का उपयोग कर ईमेल भेजने के लिए सबसे अच्छा तरीका क्या है (Outlook 2003
)?
उपयोग smtplib कि अजगर के साथ आता है। ध्यान दें कि इसके लिए आपके ईमेल खाते की आवश्यकता होगी smtp, जो डिफ़ॉल्ट रूप से आवश्यक रूप से सक्षम नहीं है।
SERVER = "your.mail.server"
FROM = "[email protected]"
TO = ["listOfEmails"] # must be a list
SUBJECT = "Subject"
TEXT = "Your Text"
# Prepare actual message
message = """From: %s\r\nTo: %s\r\nSubject: %s\r\n\
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
संपादित करें: इस उदाहरण एक और गूगल मेल
SERVER = "smtp.google.com"
FROM = "[email protected]"
TO = ["[email protected]"] # must be a list
SUBJECT = "Hello!"
TEXT = "This is a test of emailing through smtp in google."
# Prepare actual message
message = """From: %s\r\nTo: %s\r\nSubject: %s\r\n\
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.login("MrDoe", "PASSWORD")
server.sendmail(FROM, TO, message)
server.quit()
करने के लिए एक काल्पनिक गूगल मेल का उपयोग करता है यह वास्तव में काम करने के लिए, श्री डो जीमेल में विकल्प टैब पर जाएँ और स्थापित करने के लिए की आवश्यकता होगी यह smtp कनेक्शन की अनुमति देने के लिए। रिमोट सर्वर को प्रमाणीकृत करने के लिए लॉगिन लाइन के अतिरिक्त नोट करें। मूल संस्करण में यह शामिल नहीं है, मेरे हिस्से पर एक निरीक्षण।
का उपयोग करना चाहिए, यह सवाल नहीं था। प्रश्न Outlook –
@Spencer Rathbun को नियंत्रित करने के लिए Win32 API का उपयोग करने के बारे में है: धन्यवाद। समस्या यह है: मेरा 'smtp' सर्वर मेरे ईमेल जैसा नहीं है - इसलिए, मुझे अपने इंटरनेट प्रदाता ('att') के माध्यम से अपने smtp को' चैनल 'करने की आवश्यकता है, भले ही मैं एक अलग ईमेल पता का उपयोग कर रहा हूं (नहीं ईमेल भेजने के लिए 'att's')। 'Outlook' पहले से ही इसे संभालने के लिए कॉन्फ़िगर किया गया है। यदि अन्य समाधान हैं (गैर- 'दृष्टिकोण' आधारित) जो इसका भी समर्थन करेंगे, मुझे सुझाव सुनने में खुशी होगी। – user3262424
@ user3262424 तो आपका ईमेल पता आपके smtp सर्वर जैसा नहीं है? यह smtp सर्वर पर संभाला जाना चाहिए। इसे उन ईमेल पर पास करने की आवश्यकता है जो उचित ईमेल सर्वर पर नहीं आते हैं। गलत तरीके से स्थापित, यह स्पैमर को आपके माध्यम से लूप करने की अनुमति देता है। लेकिन संभवतः, आप शामिल आईपी पते जानते हैं और उन्हें एक अनुमति सूची पर सेट कर सकते हैं। –
Google के माध्यम से जांचें, बहुत सारे उदाहरण हैं, here एक के लिए देखें।
देखने में आसानी के लिएinlined:
import win32com.client
def send_mail_via_com(text, subject, recipient, profilename="Outlook2003"):
s = win32com.client.Dispatch("Mapi.Session")
o = win32com.client.Dispatch("Outlook.Application")
s.Logon(profilename)
Msg = o.CreateItem(0)
Msg.To = recipient
Msg.CC = "moreaddresses here"
Msg.BCC = "address"
Msg.Subject = subject
Msg.Body = text
attachment1 = "Path to attachment no. 1"
attachment2 = "Path to attachment no. 2"
Msg.Attachments.Add(attachment1)
Msg.Attachments.Add(attachment2)
Msg.Send()
धन्यवाद, यह अच्छा है। समस्या यह है कि, Outlook एक 'चेतावनी संदेश' उत्पन्न करता रहता है जो मुझसे पूछता है कि क्या मैं जारी रखना चाहता हूं या वैकल्पिक रूप से, एक्सेसिंग स्क्रिप्ट को समाप्त कर सकता हूं। क्या इस 'चेतावनी संदेश' को छोड़ने का कोई तरीका है? – user3262424
@ user3262424 - पॉपअप की सटीक सामग्री क्या है? –
मैं अभी उस कंप्यूटर के बगल में नहीं हूं। कुछ यह सूचित करते हुए कि एक स्क्रिप्ट 'दृष्टिकोण' तक पहुंचने का प्रयास कर रही है और यह एक वायरस आदि हो सकती है और यदि मैं जारी रखना चाहता हूं। – user3262424
pywin32 का उपयोग कर:
from win32com.client import Dispatch
session = Dispatch('MAPI.session')
session.Logon('','',0,1,0,0,'exchange.foo.com\nUserName');
msg = session.Outbox.Messages.Add('Hello', 'This is a test')
msg.Recipients.Add('Corey', 'SMTP:[email protected]')
msg.Send()
session.Logoff()
धन्यवाद। क्या यह परेशान 'दृष्टिकोण' त्रुटि संदेश उत्पन्न नहीं करेगा? – user3262424
यह विंडोज के नए संस्करणों पर एक सत्यापन ट्रिगर कर सकता है। सुनिश्चित नहीं है कि आप इसे कैसे दबाएंगे। मैं अब खिड़कियां नहीं चलाता हूं। –
import win32com.client as win32
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'To address'
mail.Subject = 'Message subject'
mail.Body = 'Message body'
mail.HTMLBody = '<h2>HTML Message body</h2>' #this field is optional
# To attach a file to the email (optional):
attachment = "Path to the attachment"
mail.Attachments.Add(attachment)
mail.Send()
भेजने के लिए अपने स्थानीय दृष्टिकोण खाते का उपयोग करेंगे।
नोट करें कि यदि आप उपरोक्त वर्णित कुछ करने की कोशिश नहीं कर रहे हैं, तो COM दस्तावेज़ गुण/विधियों को देखें: https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/mailitem-object-outlook। उपरोक्त कोड में, mail
एक मेलइटम ऑब्जेक्ट है।
क्या यह एक एचटीएमएल शरीर के लिए संभव है।चित्रों के साथ एक ईमेल बॉडी की तरह –
अद्यतन उत्तर। मेल। HTMLBody आपको इसे HTML – TheoretiCAL
की एक स्ट्रिंग पर सेट करने देता है सरल और सीधा जवाब! पायथन 3.6.1 में सही ढंग से काम करना। –
मैं SMTPLIB का उपयोग करके ईमेल भेजना चाहता था, यह आसान है और इसे स्थानीय सेटअप की आवश्यकता नहीं है। अन्य उत्तरों के बाद सीधे मददगार नहीं थे, यही वह है जो मैंने किया था।
ब्राउज़र में ओपन आउटलुक; ऊपरी दाएं कोने पर जाएं, सेटिंग्स के लिए गियर आइकन पर क्लिक करें, दिखाई देने वाली ड्रॉप-डाउन सूची से 'विकल्प' चुनें। 'खाता' पर जाएं, 'पॉप और इंपैप' पर क्लिक करें, आपको विकल्प दिखाई देगा: "डिवाइस और ऐप्स पॉप का उपयोग करें",
हाँ विकल्प चुनें और परिवर्तन सहेजें।
यहां कोड है; जहां नेक्सेसरी संपादित करें। सबसे महत्वपूर्ण बात यह है कि यहां पीओपी और सर्वर कोड को सक्षम करना है;
import smtplib
body = 'Subject: Subject Here .\nDear ContactName, \n\n' + 'Email\'s BODY text' + '\nYour :: Signature/Innitials'
try:
smtpObj = smtplib.SMTP('smtp-mail.outlook.com', 587)
except Exception as e:
print(e)
smtpObj = smtplib.SMTP_SSL('smtp-mail.outlook.com', 465)
#type(smtpObj)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login('[email protected]', "password")
smtpObj.sendmail('[email protected]', '[email protected]', body) # Or [email protected]
smtpObj.quit()
pass
Win32 अलावा, अगर आपकी कंपनी आपको वेब दृष्टिकोण की स्थापना की, आप भी अजगर बाकी एपीआई, जो आधिकारिक तौर पर माइक्रोसॉफ्ट द्वारा किया जाता है की कोशिश कर सकते हैं। (https://msdn.microsoft.com/en-us/office/office365/api/mail-rest-operations)
यह एक मैं Win32 उपयोग करने की कोशिश थी:
import win32com.client as win32
import psutil
import os
import subprocess
import sys
# Drafting and sending email notification to senders. You can add other senders' email in the list
def send_notification():
outlook = win32.Dispatch('outlook.application')
olFormatHTML = 2
olFormatPlain = 1
olFormatRichText = 3
olFormatUnspecified = 0
olMailItem = 0x0
newMail = outlook.CreateItem(olMailItem)
newMail.Subject = sys.argv[1]
#newMail.Subject = "check"
newMail.BodyFormat = olFormatHTML #or olFormatRichText or olFormatPlain
#newMail.HTMLBody = "test"
newMail.HTMLBody = sys.argv[2]
newMail.To = "[email protected]"
attachment1 = sys.argv[3]
attachment2 = sys.argv[4]
newMail.Attachments.Add(attachment1)
newMail.Attachments.Add(attachment2)
newMail.display()
# or just use this instead of .display() if you want to send immediately
newMail.Send()
# Open Outlook.exe. Path may vary according to system config
# Please check the path to .exe file and update below
def open_outlook():
try:
subprocess.call(['C:\Program Files\Microsoft Office\Office15\Outlook.exe'])
os.system("C:\Program Files\Microsoft Office\Office15\Outlook.exe");
except:
print("Outlook didn't open successfully")
#
# Checking if outlook is already opened. If not, open Outlook.exe and send email
for item in psutil.pids():
p = psutil.Process(item)
if p.name() == "OUTLOOK.EXE":
flag = 1
break
else:
flag = 0
if (flag == 1):
send_notification()
else:
open_outlook()
send_notification()
क्यों आप Outlook के माध्यम से ईमेल भेजने के लिए करना चाहते हैं? – ThiefMaster
@ थिफमास्टर: मेरा 'smtp' सर्वर मेरे ईमेल जैसा नहीं है - इसलिए, मुझे अपने इंटरनेट प्रदाता ('att') के माध्यम से अपने smtp को' चैनल 'करने की आवश्यकता है, भले ही मैं एक अलग ईमेल पता का उपयोग कर रहा हूं (' एट्स ') ईमेल भेजने के लिए। 'Outlook' पहले से ही इसे संभालने के लिए कॉन्फ़िगर किया गया है।यदि अन्य समाधान हैं (गैर- 'दृष्टिकोण' आधारित) जो इसका भी समर्थन करेंगे, मुझे सुझाव सुनने में खुशी होगी। – user3262424
उचित समाधान पायथन के [smtplib] का उपयोग कर रहा है (http://docs.python.org/library/smtplib.html#smtp-example) – ThiefMaster