ซึ่งตอนนี้สามารถตรวจเช็คลิงค์ได้เเล้ว หากลิงค์ไม่สามารถเข้าได้ ให้ส่งแจ้งไปทางเมลล์ได้เเล้ว แต่ตัวลิงค์ที่ส่งไปมีเเค่ลิงค์เดียวครับ ซึ่งตอนรันผมได้เก็บลิงค์เป็น list ในตัวแปร save_link จากนั้น สร้างลูปอ่านค่า เเล้วนำค่าไปใช้ในการส่งเมลล์
code ที่เขียนตอนนี้
โค้ด: เลือกทั้งหมด
import urllib.request
import configparser
import time
import email
import smtplib
con = None
config = configparser.ConfigParser()
config.read('admin.conf')
SMTP=config['options']['SMTP']
ports=config['options']['ports']
user = config['options']['user']
password = config['options']['password']
recipient = config['options']['recipient_email']
sender = "[email protected]"
link = open("check_link.txt","r")
r_link = link.readline()
r_link = r_link.split()
r_link= open('check_link.txt')
plt = open("plateformEmail.txt")
plt = plt.read()
save_link = []
check = []
#con = None
#config = configparser.ConfigParser() ใช้วิธีการด้วย readlin readfile
timeis = time.localtime()
time_hr = timeis.tm_hour
time_min = timeis.tm_min
time_sec = timeis.tm_sec
n = 1
print("Start_test:" ,time_hr,":",time_min,":",time_sec)
for line in r_link:
print("link:",n)
n += 1
try:
response = urllib.request.urlopen(line)
if response.getcode() == 200:
save_link.append("That link is ok:"+line)
check.append("Y")
print("""That link is ok:{} Time_test :{}{}{}{}{} """.format(line, time_hr,":",time_min,":",time_sec))
else:
print('The response code was not 200, but: {}'.format(
response.get_code()))
except urllib.error.HTTPError as e:
print('''That link is error occurred:{}
The response code was {}
Time_test :{}{}{}{}{}'''.format(line,e.getcode(), time_hr,":",time_min,":",time_sec))
save_link.append("That link is error occurred:" + line)
check.append("N")
#save_link = save_link.split(",")
print(save_link)
N="N"
if N in check:
print("send Email")
for all_link in save_link:
print(all_link)
msg = email.message_from_string(plt+"\n"+ all_link +"\n" ) #ข้อความที่ต้องการส่ง
msg['Subject'] = "test smtp mailgun with python"
s = smtplib.SMTP(SMTP,25)
s.ehlo() # ชื่อต่อกับ Hostname
# s.starttls() # กำหนดใช้ใช้ SSL การติดต่อกับ SMTP server ด้วยโหมท TLS mode ถ้าport 25 ไม่ต้องใช้ เเต่ถ้า 46 ต้องใช้
#s.ehlo()
s.login(user, password)
s.sendmail(sender,recipient, msg.as_string().encode('utf-8'))
s.quit()
print("sended Email")