В настоящее время мы используем супер базовый сценарий Python, который я нашел в сети, чтобы отправить отчет об ошибке через HTML из электронного адреса отдела. Однако, поскольку он в настоящее время стоит, он отправляет по электронной почте от наш электронный адрес до наш адрес электронной почты. Я надеюсь, что может быть какой-то способ отправить электронное письмо с адреса текущего пользователя. Вот что у нас получилось:Как получить текущий адрес электронной почты пользователей для отчетов об ошибках Python?
def sendMail(sender, recipient, subject, html, text):
import MimeWriter, mimetools, cStringIO
import smtplib
out = cStringIO.StringIO()
htmlin = cStringIO.StringIO(html)
txtin = cStringIO.StringIO(text)
writer = MimeWriter.MimeWriter(out)
writer.addheader("From", sender)
writer.addheader("To", recipient)
writer.addheader("Subject", subject)
writer.addheader("MIME-Version", "1.0")
writer.startmultipartbody("alternative")
writer.flushheaders()
subpart = writer.nextpart()
subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
pout = subpart.startbody("text/plain", [("charset", 'us-ascii')])
mimetools.encode(txtin, pout, 'quoted-printable')
txtin.close()
subpart = writer.nextpart()
subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
pout = subpart.startbody("text/html", [("charset", 'us-ascii')])
mimetools.encode(htmlin, pout, 'quoted-printable')
htmlin.close()
writer.lastpart()
msg = out.getvalue()
server = smtplib.SMTP('smtp.office365.com',587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("[email protected]","sample")
server.sendmail(sender, recipient, msg)
server.quit()
Тогда мы используем простую попытку/за исключением ExecFile сценария для запуска все из:
try:
execfile('\\\\path.py')
except:
print 'ATTENTION: An error has been detected in a script process.'
traceback.print_exc(file=sys.stdout)
import sys, cgitb
recipient =
['[email protected]','[email protected]','[email protected]','[email protected]']
for rec in recipient:
Utils.sendMail('[email protected]',
rec,
'ATTENTION: An error has been detected in a script process...',
cgitb.html(sys.exc_info()),
cgitb.text(sys.exc_info()))
sys.exit()
Именно здесь, где мы определяем адрес мы посылаем к :
for rec in recipient:
Utils.sendMail('[email protected]',
rec,
'ATTENTION: An error has been detected in a script process...',
cgitb.html(sys.exc_info()),
cgitb.text(sys.exc_info()))
sys.exit()
Есть ли какой-нибудь сценарий AD, который мы можем реализовать здесь? У нас около 30 человек, использующих наши процессы, поэтому всякий раз, когда появляется всплывающая ошибка, мы получаем электронное письмо с ошибкой и не ссылаемся на то, кому он принадлежит.
Это действительно отлично работает, это то, что нам нужно! Полное имя пользователя было бы здорово, но это работает для того, что нам нужно, поскольку мы знаем фамилии всех в нашей команде. –
Добро пожаловать, рад помочь! –