얼마 전에 크롤러를 해봤는데 재미 있었지만 ssh가 크롤러를 활성화하여 데이터를 가져올 때마다 매우 번거롭습니다. 자동 실행은 'crontab'설정으로 쉽지만 자동으로 데이터를 보내고 싶습니다.
처음에는 SMS를 사용하고 싶었는데 SMS는 67자만 보낼 수 있고, 개수 제한이 있고, '월 100건'을 초과하면 과금이 부과됩니다. 그리고 완전히 사용자 정의 할 수 없기 때문에 (추악합니다) 나중에 이메일을 사용하려고 생각했습니다. (공식 계정 및 TG 푸시 연구 중)
백엔드는 파이썬을 사용하고 SMTP 서비스는 Tencent Enterprise Mail에서 사용하므로 데이터에 오류가 없는 한 구현이 매우 간단합니다.
# 구현 프로세스
일반 문자 메시지
이 단계는 가장 간단하며 30줄의 코드를 직접 복사하기만 하면 됩니다.
#coding:utf-8
smtplib 가져 오기
email.mime.text에서 MIMEText 가져 오기
# 타사 SMTP 서비스 사용
mail_host = "smtp.exmail.qq.com"# 서버 설정
mail_username = "noreply@tstrs.me" # 사용자 이름
mail_auth_password = "비밀번호" # 인증 비밀번호 😀
보낸 사람 = "noreply@tstrs.me"
receivers = "saltyleo@tstrs.me" # 여러 수신자를 채워서 ','로 분할할 수 있습니다.
# html 메일
#mail_msg = """
#"""
#message = MIMEText(mail_msg, "html", "utf-8")
message = MIMEText('파이썬 메일 보내기 테스트...', 'plain', 'utf-8') # 일반 텍스트 메일
message["보낸 사람"] = (u'TSTR-Blog <%s>'%sender ) # 닉네임, TSTR-Blog를 수정할 수 있습니다.
message["To"] = 수신자 # 수신자
message["제목"] = "테스트 이메일"
노력하다:
#smtpObj = smtplib입니다. SMTP(mail_host, 25) # SSL이 아닌 프로토콜에서 포트 번호 25를 사용하여 smtpObj 객체를 생성합니다.
smtpObj = smtplib입니다. SMTP_SSL(mail_host, 465)# SSL 프로토콜 포트 번호 465를 사용하여 smtpObj 객체 생성
smtpObj.login(mail_username, mail_auth_password) # 로그인 이메일
smtpObj.sendmail(sender, receivers, message.as_string()) # 사람에게 보냄
#smtpObj.sendmail(sender, receivers.split(','), message.as_string()) # 여러 사람에게 보내기
smtplib를 제외하고. SMTPException 크랙:
인쇄 ("오류: 이메일을 보낼 수 없음")
먼저 로컬에서 테스트하고 WSL에서 직접 실행했으며 프롬프트가 없으면 성공적으로 전송됩니다. 그러면 몇 초 안에 이메일을 받게 됩니다.
> 테스트 스크립트의 이름을 email.py 지정하지 마십시오, 이것은 email 함수를 호출하는 Python에 영향을 미칩니다. 그렇지 않으면 당신은 나와 같을 것입니다 :
"오류: 메일을 보낼 수 없습니다"라고 말하면 SMTP 서버, 사용자 이름, 비밀번호, 보낸 사람, 받는 사람, 포트 번호를 확인하십시오. 일부 이메일 공급자는 SSL을 사용해야 하지만 다른 공급자는 사용하지 않습니다.
html 메일
여전히 위의 코드이지만 다음 줄을 주석 처리하십시오.
message = MIMEText('파이썬 메일 보내기 테스트...', 'plain', 'utf-8') # 일반 텍스트 메일
보내려는 HTML 메일의 내용을 '여기'에 추가하고, 무엇을 기입해야 할지 모르겠다면 여기을 눌러 봅니다. 또는 GitHub에서 다른 사람의 [오픈 소스] (https://github.com/SaltyLeo/responsive-email/blob/master/simple.html) 간단한 템플릿을 사용하십시오 https://github.com/SaltyLeo/responsive-email/blob/master/simple.html.
오류가 보고되지 않으면 수신된 이메일은 다음과 같아야 합니다.
html 이메일은 본질적으로 웹 페이지이며 올바르게 표시될 수 있는지 여부는 전적으로 이메일 클라이언트에 달려 있습니다. Outlook 및 Gmail과 같은 대부분의 메일 클라이언트는 HTML 설정을 필터링하여 메시지를 인식할 수 없도록 합니다.
데이터 가져오기
여기에 코드가 게시되지 않으며, 간단히 말해서 크롤러 데이터는 데이터를 크롤링 및 필터링하고 이메일 템플릿에 삽입하는 데 사용됩니다. 템플릿에 변수를 삽입하려면 다음 코드를 사용해야 합니다.
"""+변수+""""
자동화 실행
현재는 정기적 인 전송 만 달성했으며 데이터 변경에 따라 전송을 계속 연구하고 있습니다. crontab -e 명령을 사용하여 실행하려는 시간과 스크립트 위치를 추가하기만 하면 됩니다.
crontab에 채워진 스크립트 위치 외에도 절대 위치여야 하며 스크립트에서 호출된 파일도 절대 위치여야 하며, 그렇지 않으면 오류와 함께 파일을 찾을 수 없습니다.