From 128ab844297e5e9d7a7ef1d568304e251ec5d4e9 Mon Sep 17 00:00:00 2001 From: DennisEckerskorn Date: Mon, 13 Jan 2025 17:07:08 +0100 Subject: [PATCH] Started creating pop email client with database --- .../__pycache__/email_client.cpython-312.pyc | Bin 6066 -> 0 bytes .../email_client_imap.cpython-312.pyc | Bin 0 -> 6115 bytes .../{email_client.py => email_client_imap.py} | 2 +- src/services/email_client_pop.py | 47 ++++++++++++++++++ .../centered_window.cpython-312.pyc | Bin 17879 -> 17888 bytes src/ui/centered_window.py | 4 +- 6 files changed, 50 insertions(+), 3 deletions(-) delete mode 100644 src/services/__pycache__/email_client.cpython-312.pyc create mode 100644 src/services/__pycache__/email_client_imap.cpython-312.pyc rename src/services/{email_client.py => email_client_imap.py} (99%) create mode 100644 src/services/email_client_pop.py diff --git a/src/services/__pycache__/email_client.cpython-312.pyc b/src/services/__pycache__/email_client.cpython-312.pyc deleted file mode 100644 index 9926095659e1d7d091c57eefb57adf6ba6e1bbb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6066 zcmeHLU2GKB6~42xvpf4^8{2E*AB@Mw;4BnFNlGX`P6#%Ef)`pKA&$v**cr@hcW0eD zv%y}i5vq7tr&I>D5}>LDq)IVDYAm%6POB7WiD`UQTLjHmkr?^YZ%2{A;5``#Sf{fT- zZiIunE8$A=BRq#~e8Qa+Mg+#Y6P~1Z#LIXgAtrqzK90D^Yeex}C5rcf%bt0}Kgor~ z$5@GkIZGTqIy`h*oiKr~Lw-1&Ftu@+Vnb6>H4J%7jb5OsWc2)`sT$Z#QDZ4Zjb2n` zMWr!&TAP;EAS=hAev_yKcRb=!f(mz)8{rk#RWjmMc%Xvf2I^4+pkCbJh^Tmh`jk3F zguZ^o2ep9W2O69VgzK%qP*TkriftqJct-OOt66PXd(F$luc|2;U^j(!&0V8RaD}stU zx5RPTFfOI2V)^-?RcVXx&j)Wijfkf8x2K_qoZ06c^?05Nbk zl3l)f{m|agGq4Y1bWqiG%@{p7X$IBjZ&(|XL*SmPL#lO@@xL1Ux% z3$&POjIv!vW9-2D$0sc@8r5{oj7Bq|3RUzwtv=kxejry!v13cly(qSpzb)-K_ced9 zRf11lv8@L__2o~eU4ze$>sMeriIw#Q71ROK?oMdENqodCOXFot;wZahNxZB>r;UL2 z;$`ivwmK%UM(-ppuJ&-aI39defjLnVRRvm6D^&6~yVD&o>!FmcPH3P0 zT9*_xAu$CjDJmTuK6o;{evKTPB2EttE_8O$X=?O~ll3MB#lG#UF2Rs(~t%B-)JCAQ}KH z9L4!Ft(Bmwl!TzK@eYtHv`1Kd*|HkbF(ilZQGaMwr~FQM{j@lcA@ilZtz;9 z7+g0KnT{+4rF>Aj8+yO}Ui<9n56;~`w;0^_DA>5rwDnqHt+$f}`~u%4@h@l%FDDSNdfb`MOHA3tCK;3{AQyPfBTB zW^TlGL+{E7O_3#2*3A_7B<6`goMaU|{YcnF(Rr}5zt1uEV4%BnT!UsrOFlqV)}C>t zBn%@A{IyremkrG`m!~h^J-yHn{;c81tnz_=U;lV;q5sH&c!ahGdqszCZsg7L?Nwm{H&Bn8D&?i8ukHA zN_aGx{?Y(lNv#=E;hW(|V<}42RDXYeB+OHWRs{OQn}BH*d!Q zIP?nnt5~;CKd>miToi*#Vq0EpTNFFW{6n$h>9fQ@#m@3qz&s0GwNA3?tYLI@iPtz^ z#ij60z#RpgPH|H%vz)GFU5XoRIga^CRdF=q1X@6|knV#{C(eV4R4PIA)Ia@gQiZTs zK4L@CQ&K|Jl#~GhF!Jh&vk}X4CURRn!U99G<$*K~P8h#3ja{_(gsNMD0UpN$ z4YBy=F-+M^8|!*nQ^>pl{%PIJY^>DR)AAQ!yzv?k zFaR+)Q$Jn5BzES-&Rb)P;+A4Z*PVge14|t{^Bp_qLUR*^j#u(xYtD0BeALi%eb23f zH})+x_vV{>3(Z>!4Sfq@-_y#)yoxFJH^6)ys&7=kk9h96z$9qFDnqZXt|{3I$Mn;S*Go24VOgUhGE7TAfVj#jd%KQ z_b;_?&$n+cwC|X104;ipfyV2n-y8Vz(D6d^@F#D~@4kNc=J1W-pPX0X^3B5w!Qo;vwu^cgT#8HZN@76Asuh`Wqml7$O+d zErH>eqB1FZ2g|P+nhsW_$5cyTuL$%dZ1>3HHE_*A?+ zM>Pe^g|XlsohD068e>sKHf4(k&hi@e{-B2rPZXLyW?;sKrsWjdlLpX0qxN)}=Z01v z7Wyj$ufR~_Pe7`D=Y>UabG7eG7dj4vz}S+LTG2s zS8Qy~c|LFL&K)UsZMt*$_T{Cn7xG;%%pIAJ7rKt-gBx;(uOE5T)O+{rtbFgSxyE~M z7n)wo9eN~fpN-9h@9PEWz`UH7UdabLbFW=L`>3JqR^Knbwb&3Yws)ib&$fOR-aq$7 zq5S|Df3Rt0czXC&-@{1#}Sy7+1Kf~LWlmJ7^#eo`2nk&Is>OnhTt{UyNV*lz~lN>yDx-#8|G?h|_?GVi| z$DV*UhqXy{#0lLVc&tdJOAOlPGFc}k2=xyHAE zfFlVs%nZCYP=1E!&Ih{}gPV#~&0YCm*TZ1<6P^UynZ3e&=N#(k57W( zI((PY<)j*oTK;G>nNrdTb_m?Vbf4>l@x6qb+1Kg0 z*CnwWgeE3A9aBJ?1Zdg-X;Oob)=1k!+C8*gA16(59Te}DN|m-3_Jop$ZQaB6edqc* zjxo~uvZoy--~G<{&Oe{;_x(BNkHMgyK>4uu$D_e|LjHmkr?^YZ%2{A;5``#Sf(+YV zZkU6*E8$A=!#sy=e8Qa+h6TpE6P~1Z*voh!AtrspK90D^Yeex}C5rcf%bt1IKgmVJ z$5@F*I7=KF92z*SPME+4ksnGYOl@4I*wC0%4MQGPV;5*D89P5|ss?sb)Obo!V;5Cf zQEA+s)~2O3$jWi3-y|x*9S^&dfWlqnhIz$xl?=NT9;l$WfqE1Hs26uQEGk~0J|(D# z(ATf{pjM~&fd(e)BK1~iASr8!!wF5*&B3HR9`{zPj0^Mdzhbh5vs{+M%HpgGYMfKe z@=$X&O0sUK;Ye1p0@NH8kgNx4f+JH1)I4iyb+lR58c*qZsTJ9X*K!+b;sQn3&^jamBtawqAVNbx z4BU-mm#^MDyl>k|rnyQdy^h3(8#(~w3Msa2&AAuF=JI!a zYtDVmUu>4(6D+oL!Kc3bX}4?e`Dy(Mj3@E3;-G@cU~1k4tv88}m}Ti$S*1A2E?F{G zR;JTNK#gN%HLkWg_OS*4WK3M`;c#Q9fvN&?qDra?w4!>din9_&%mzoKa1Tnqgd>yu zW@0uvl5Rpfrnript}OQp@=Mohe+2Nj}^&HA;xL}l@A`w^mWf=K=m1-BXxGWi( zbWxs^(z?vtiS3TwkrSFCOQx)wDez6qBY`-{DyV^I#6{7Gu=BsqF*jkL+jLxnX2eQ< zKvkYT=Spb=Mj7~vuaGZ8O*5CLFW)`A5Q=;jIy$Souiw`{?qBFVx*#5<>!Ht@Q^D}V zLeMZUH!A{Ar3;6%DCZQ=tyCVAzU-{Zd4(e-WK}-titw48gSrX1jx15gw;Z1iwc0;KXpeQar5JJV9_ zam%6|I0%PdA%7Kv3-x`A;>$%buq3wR#g;{}t;|0Z+nzp83|#Cye*?_3P*&?StIiun zSC_FGXRNps-U+}XfY&K*%4L@GxU5TYqg{_-{!&#O?KpuKP%Wf;pwo%-peB_{5KZ+@ zKTN6+Cd8ARtCxJ#jW_dCo*n4GcsnT1!M=h_*bC-@z&4SElic7N1ac zOEAFun4l#V4?Tt{n`y%mscMX;bVD`p*dX7t<749m)r?<^rF9BvIha9OH#1$;I(xd$ z^Du|;8W1o9F)&j)KW~%s0iKBBSIKa2%^$A`y4y zCD1Y4J5(tlO9>4W!89z>an+O!NzqUt+W7?7qpBkgoV>_#oj8^eq^_M^(&K+aiMVZb zyKxfBV_&4`PFNl!sAakfh~>SIO2F01uskIOjRZ7ZQgzT)V@Z~2udU^h_}ehlI0FO} z+`8#b@9o~D)*boQ9fj7N(;?8Lw^-M3{q(zie;znqXd3$D_4z&5kK7!(G4!(&OW{a9 z9GUGYgm=&FE`;}d{Cd7=Xdy6E3^n9@|6JxtILaAlV(&!`t#`*!$4fnCeN~VNSGUdq%{p4I0(Byr_ z$~Bxq)~mRyRu;`V=NPi0y$40Woj8tT%4g!ujg_oV@l?v}{_HpSr|L}1Htc?W6C)oh z&U$ox)<1^1aaGCIO>hRF7w-I}JH?bg>lwpHR#mcorw2!_U3SBT7o3`y#<+OAjB*w( z3@Q2PJp-c(UcXf%YVn7TA7?HsBR==NBZv3y-W_?2%URx2>GOEW%m``o!j8R>Iy+{6 z6J!)a1%taKFbq>vCPfcn`87k+!LszYY6*G^WU=Z1KQZUc=rW^w8lQL(@kM%;M0zoML;_IyBOl zJzb`4VD0NeZ-wv`7;gLtNVN~WuqbY+_Mz!Q+rg3#ErvJV`tFTmOW`f~@RmZjXLkLp zXV$wA-j(we8=7*S&zn1QM~fYs?_9opd8y<1e8=;1N9V^19fSG6#@vzXM;|qI-#t4k z-+Obe;oe(?#usvjA4xlA<8zVwdO{3bowo`Spv7p-8c{6MevJ z^JkF*bFUX#4}t>-G|mi758di{80dNuBrRP}>dCqdxuEUJ(e*f`?8^TJEtR>CV^Cmr zHM2l4Mh;&C;9bV8xESX`17)1Mmg}yF$^5E`t-=-7`R}jhHS$v2$ynJ8ogcWGgFPs@ zGq{cm5l^Q3q)GvDD){$zG`Rbw^->-M-X5?{!TrZmmiq|2lUc6QDT*mGTx}Dwrbi=Q ziigPV3IJ!*l;amEPS5gKOEdu9>~Y8^8!^L#>+mR~1uW+K%~VWQ6o~i+9mFZ!=Tpig zJqj%IybQ25T75W84Ci?|RV#~5;J`P5K&n>X_LEeOFK%ePId)?#$LEer*A>H?fa#z1 z6~?+W+&txBBn)6q>dzirXQbv(to*yx4Kq{ht4xfA%}`{71nLg1-+v ztd%n3@v~^~D`1|L0npZGc-@jBU}(8GaAS#dB|u9(XdBE`qrFxhusYWy2QQGg4{O)}#CFH29<~u!YJDx*-k;yXss^U@9ZiS?x-m z>Vj{-#*09}q11(D`rhp;KT~w(1D%V3&Bdzbj(niwVW9H~PXevXZsD%Vv|DMeF+{Q-@RfMLK9@eKKpVz2cEfqXa~$_MsfWKWNcR_{m(i_%cc0<7 Ku4RIhP4XXVcRKU{ literal 0 HcmV?d00001 diff --git a/src/services/email_client.py b/src/services/email_client_imap.py similarity index 99% rename from src/services/email_client.py rename to src/services/email_client_imap.py index b657cea..67c0897 100644 --- a/src/services/email_client.py +++ b/src/services/email_client_imap.py @@ -5,7 +5,7 @@ from email.mime.multipart import MIMEMultipart from email import message_from_bytes from email.header import decode_header -class EmailClient: +class EmailClientImap: def __init__(self, imap_server, smtp_server, email, password, imap_port=143, smtp_port=25): self.imap_server = imap_server self.smtp_server = smtp_server diff --git a/src/services/email_client_pop.py b/src/services/email_client_pop.py new file mode 100644 index 0000000..5c6ce9d --- /dev/null +++ b/src/services/email_client_pop.py @@ -0,0 +1,47 @@ +import os +import poplib +import smtplib +import email +from email.header import decode_header +from email.mime.text import MIMEText +from email.mime.multipart import MIMEMultipart +import sqlite3 +from datetime import datetime + +class EmailClientPOP: + def __init__(self, pop_server, smtp_server, email, password, pop_port = 110, smtp_port=25): + self.pop_server = pop_server + self.smtp = smtp_server + self.email = email + self.password = password + self.pop_port = pop_port + self.smtp_port = smtp_port + self.pop_conn = None + self.smtp_conn = None + + #Ruta del archivo SQLite: + self.db_file = os.path.join("resources/db_email", "emails.db") + self.init_database() + + def init_database(self): + db_folder = os.path.dirname(self.db_file) + if not os.path.exists(db_folder): + os.makedirs(db_folder, exist_ok=True) + print(f"Carpeta creada: {db_folder}") + try: + conn = sqlite3.connect(self.db_file) + cursor = conn.cursor() + cursor.execute(""" + CREATE TABLE IF NOT EXISTS emails ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + sender TEXT NOT NULL, + subject TEXT, + body TEXT, + received_at DATETIME + ) + """) + conn.commit() + conn.close() + print(f"Base de datos inicializada: {self.db_file}") + except sqlite3.Error as e: + print(f"Error al inicializar la base de datos: {e}") \ No newline at end of file diff --git a/src/ui/__pycache__/centered_window.cpython-312.pyc b/src/ui/__pycache__/centered_window.cpython-312.pyc index c51fc633fd052ecfce7915d54fb84c16e37c6897..30dbfa13748cd2fc01bbc8bdd2ea1b618b157e41 100644 GIT binary patch delta 93 zcmccK&G?|3k@qw&FBbz4?9yvZFPg~vRDj<#H!(BEIVUqUuf#Jqv0&prUsgt)%|2}0 q_VRMYMag=_sYPX($*IM9sUU^%$zYZ7nLwqJ3tfE}ttRhtl>`9NUm&jl delta 85 zcmaFR&3L_=k@qw&FBbz4%&=)lPnpR3l!x0jH!(BEIVUqUuVgb5qc1C?#^wMvZhJ<_ k$uX{yldD{Pqzu2Xm9sE