ฉันมีสคริปต์หลามขนาดเล็กด้านล่างซึ่งส่งอีเมลไปยังอีเมล Outlook ของบริษัทของฉัน มันทำงานได้ดีบนคอมพิวเตอร์ส่วนบุคคลของฉัน แต่เมื่อฉันปรับใช้กับเซิร์ฟเวอร์ มันยังคงทำงานและหมดเวลา แต่ไม่ส่งอีเมล
นำเข้าระบบปฏิบัติการ
นำเข้า smtplib
นำเข้ากระบวนการย่อย
จากทางออกการนำเข้า sys
cmd = 'df -kh'
p1 = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
std,err = p1.communicate()
เอาต์พุต = std.decode ()
#พิมพ์ (เอาท์พุท)
smtp=smtplib.SMTP('smtp.outlook.com', 587)
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login('อีเมล','รหัสผ่าน')
เรื่อง = 'Send_Disk_Info_Daily'
ร่างกาย = เอาท์พุท;
msg = (("เรื่อง : {} ".format(เรื่อง)))+("\n\n{}".format(body)))
smtp.sendmail('อีเมล', 'อีเมล',msg)
smtp.quit()
ด้านล่างนี้คือข้อผิดพลาดเมื่อหมดเวลา-
Traceback (การโทรครั้งล่าสุดล่าสุด):
ไฟล์ "send_disk_info.py" บรรทัดที่ 16 ใน <โมดูล>
smtp=smtplib.SMTP_SSL('smtp.outlook.com', 587, หมดเวลา=20)
ไฟล์ "/usr/lib64/python2.7/smtplib.py", บรรทัด 789 ใน __init__
SMTP.__init__(ตัวเอง, โฮสต์, พอร์ต, local_hostname, หมดเวลา)
ไฟล์ "/usr/lib64/python2.7/smtplib.py", บรรทัด 255 ใน __init__
(รหัส, ข้อความ) = self.connect (โฮสต์, พอร์ต)
ไฟล์ "/usr/lib64/python2.7/smtplib.py", บรรทัด 315, ในการเชื่อมต่อ
self.sock = self._get_socket (โฮสต์, พอร์ต, self.timeout)
ไฟล์ "/usr/lib64/python2.7/smtplib.py", บรรทัด 794 ใน _get_socket
new_socket = socket.create_connection((โฮสต์, พอร์ต), หมดเวลา)
ไฟล์ "/usr/lib64/python2.7/socket.py", บรรทัด 571 ใน create_connection
เพิ่มข้อผิดพลาด
socket.error: [Errno 101] ไม่สามารถเข้าถึงเครือข่ายได้
ฉันไม่สามารถทำ telnet เป็น outlook ได้ แถมยังหมดเวลาด้วย ดูด้านล่าง:-
[linux_server Python]$ telnet smtp.outlook.com 587
ลอง 40.101.4.2...
^ซี
[linux_server ไพธอน]$
ด้านล่างนี้คือพอร์ตการฟังบนเซิร์ฟเวอร์นี้
linux_server Python]$ netstat -tulpn|grep -i ฟัง
(ไม่สามารถระบุกระบวนการทั้งหมดได้ ข้อมูลกระบวนการที่ไม่ได้เป็นเจ้าของ
จะไม่แสดง คุณจะต้องรูทเพื่อดูทั้งหมด)
tcp 0 0 0.0.0.0:5666 0.0.0.0:* ฟัง -
tcp 0 0 127.0.0.1:199 0.0.0.0:* ฟัง -
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง -
tcp 0 0 127.0.0.1:25 0.0.0.0:* ฟัง -
tcp6 0 0 :::5666 :::* ฟัง -
tcp6 0 0 :::37712 :::* ฟัง 45077/java
tcp6 0 0 :::8080 :::* ฟัง 44458/java
tcp6 0 0 :::8085 :::* ฟัง 44458/java
tcp6 0 0 :::22 :::* ฟัง -
tcp6 0 0 ::1:25 :::* ฟัง -
tcp6 0 0 :::32858 :::* ฟัง 44648/java
[linux_server ไพธอน]$
ใครสามารถช่วยฉันเข้าใจปัญหาและแก้ไขได้ หรือมีวิธีอื่นในการกำหนดค่าสคริปต์การส่งอีเมลนี้
ความช่วยเหลือใด ๆ ที่ชื่นชม ขอบคุณล่วงหน้า !