WiX가 보낸 HTML 메일을 읽습니다.

9684 단어 파이썬WiXgmail

참고 페이지



· Python3에서 이메일 송수신 (이번 소스 기반)
· 파이썬으로 HTML 분석

이번 테마



WiX가 제출한 양식 데이터(HTML 메일)를 읽습니다.
나중에 db 등록하기 위해서는 이 가공이 필요.

WiX란?



온라인으로 웹사이트를 만들 수 있는 사람 입니다. 최근까지 몰랐지만 의뢰를 청해서 알았다. 기업 사이트 등의 "독특한 가장자리는 필요 없기 때문에 확고한 좋은 느낌의 녀석이되는 빨리!"같은 사이트에는 좋을지도 모른다.

이런 메일이 보내집니다.



(히키...!)


※ 젠장! 만들었지만 문자 화할 수 있습니다!



게다가 「=E5=B2=A1=E7=94=B0」로 그대로 구그하면, 속에 써 있는 것 같은 것이 검색 가능...(웃음)
여기까지 왔는데 ... 누군가 도와주세요 ...

MailFile.txt
[9] =E5=B2=A1=E7=94=B0
[15] =E3=82=B9=E3=82=BF=E3=82=A4=E3=83=AB=E3=83=97=E3=83=A9=E3=82=B9
(...以下省略)

※QPRINT라는 문자 코드다운



여기에서 텍토에 조합하면 괜찮은 상태로 할 수 있었다.
이것을 변환할 수 있으면 좋겠지만....


※Gmail 보안



프로그램을 실행하고 로그인 할 수 없어! 같은 오류가 발생하면



"2단계 인증을 초기 설정한 후 끄기". 의뢰되어, 메일 주소가 이미 정해져 있는 경우 등에, 그 메일 주소의 2단계 인증 프로세스의 초기 설정이 끝나지 않을 가능성이 있다.

· 2단계 인증 프로세스 사용


이쪽도 유효하지 않으면 안 된다(설정 변경 후, 3분 정도 필요)


◎ 이것인가?



StackOverflow을 읽고 "quopri.decodestring()"을 알고,
공식 문서
블로그 를 읽고 "UTF-8 bytes에서 str"을 알았다.
(스마트에 쓰고 있지만 상당히 오갔다)

출처



Gmail.py
import os,imaplib,quopri
from bs4 import BeautifulSoup

LOGIN_UID = "****@gmail.com"
LOGIN_PWD = "****"

def GetGmailMessage(fromaddress):

    #コネクションの確立
    gmail = imaplib.IMAP4_SSL("imap.gmail.com")

    #ログイン
    gmail.login(LOGIN_UID, LOGIN_PWD)

    #メールボックス名を「inbox」に指定(※標準がinboxなので省略可能)
    gmail.select("inbox")

    #すべてのメールをたぐって、特定の送信先のメールをresに返す
    res = gmail.search(None, "(ALL HEADER FROM {})".format(fromaddress))

    #「res」をもう少し掘ったところにメールの集団があるのでそれを取得
    mails = res[1][0].split()

    #メッセージ数が0だった場合は処理終了
    if len(mails)==0:
        return()

    #とりあえずデスクトップに「MailFile.log」というテキストを作成してうまく取れるか検証する
    f = open("MailFile.log","w")

    #各メールに対する処理
    for mail in mails:
        data = gmail.fetch(mail, '(RFC822)')[1][0][1]
        soup = BeautifulSoup(data, "lxml")
        for i,td in enumerate(soup.find_all("td")):
            if td.string != None:
                f.write("[" + str(i) + "] " + quopri.decodestring(td.string).decode('utf-8') + "\n")
        f.write("\n")

    #あとかたづけ
    f.close()
    return()

if __name__ == '__main__':

    #「MailFile.txt」というテキストを作成する場所
    os.chdir(r"C:\Users\Yoshitaka\Desktop")

    #Gmailを受信(引数:どこからのメールを?)
    GetGmailMessage(fromaddress = "****@powr.io")

다음은?



SQLServer에의 INSERT는 「 Python 환경 구축 및 DB에 대한 SQL 실행 예제 노트 2016 Python이 Insert하고 곧 최신 데이터로 Read하고 Pandas에서 Excel로 토하는 것이 좋다고 생각한다. 그렇게 하면 그 앞의 배포로 Windows에 가자 Mac(Mac의 VBA는 가타가타에서 사용하는 것이 되지 않는다)에 가자 괜찮다.

좋은 웹페이지 즐겨찾기