I receive daily activity statements from my broker and I wanted to download them, extract the data into a MySQL database and then archive the statement on the hard drive. The first part is downloading the attachment, and then moving the email to another imap folder, which is something I had trouble with in Gmail. I use Python to do it, and the email and imaplib packages. Here’s a look at the code that moves all the messages in the inbox from a single recipient to another imap folder.
import Messaging, Util, Const
import email, imaplib, os
m = imaplib.IMAP4_SSL(Const.IMAP_SERVER)
resp, items = m.search(None, 'FROM', '"email@example.com"')
items = items.split()
for emailid in items:
resp, data = m.fetch(emailid, "(RFC822)")
if resp == 'OK':
email_body = data.decode('utf-8')
mail = email.message_from_string(email_body)
if mail.get_content_maintype() != 'multipart':
if mail["Subject"].find("Activity Statement") > 0:
print("Moving message " + mail["Subject"] + " to " + Const.IMAP_DEST_FOLDER)
result = m.store(emailid, '+X-GM-LABELS', Const.IMAP_DEST_FOLDER)
#result = m.store(emailid, '+FLAGS', '\\Deleted')
mov, data = m.uid('STORE', emailid , '+FLAGS', '(\Deleted)')
I use another file called Const.Py to store all my configurations, so change those to whatever you need. The key here is to change the label with the line “result = m.store(emailid, ‘+X-GM-LABELS’, Const.IMAP_DEST_FOLDER)”, and then add the “Deleted” flag, before expunging the inbox.
I’ve been running Plex Media Server on an old desktop machine that runs in my closet for a few years now. It was running on Centos 5 and has performed beautifully, with the family using it constantly. Unfortunately, as it goes, hardware fails, and I lost two hard drives and the optical drive at the same time. With the new hardware in place, these are the steps I took to get the family fun center up and running.
Plex Media Server Step-by-step Installation Guide for Centos 7
- Download and install Centos 7. This is the latest version of the OS. I have done a minimal install. The install goes great, but Red Hat have removed support for 100mbps NIC’s in this latest version, so be sure your hardware is running a gigabit network card, or else Centos will not pick it up. I bought a Trendnet card from Amazon for $10, and Centos picked it up perfectly during the install.
- Once installed, log in and install a few packages that I find useful, namely
- Perform a system update – yum update
- Secure your server. Linode has got some great articles & tutorials, and their one on securing your server is a must. Follow their instructions for a secure Linux server. Just remember to check your permissions and ensure 0700 for ~/.ssh and 0644 for the authorized_key file in that folder.
- Disable SELinux by editing the file /etc/sysconfig/selinux I have found that SELinux messes with the media server, and in all honesty is not necessary for a media server.
- My media is on a NAS that I will be accessing via NFS, so I will install the NFS client – yum install nfs-utils nfs-utils-lib
- Connect to my NAS. I created a folder called /mnt/NAS and have added the following line to the /etc/fstab file: 192.168.1.110:/mnt/HD/HD_a2/media /mnt/NAS nfs defaults 0 0. To test it run mount -a
- Download Plex using wget
- Install Plex by running yum localinstall
- Open the appropriate firewall ports for PMS. See the following article for the list of ports. The command to open a port in Centos 7 looks like this: firewall-cmd --add-port=32400/tcp --permanent. (Those are double dashes in front of add and permanent) You can use nmap to check the open ports (sudo nmap -sT -O localhost) or firewall-cmd --query-port 32400/tcp
- Make sure Plex starts on system boot. You can check this with systemctl is-enabled plexmediaserver.service. If it returns “disabled” then turn it on with sudo systemctl enable plexmediaserver.service
- Now go to your Plex media server via a web browser on another machine and start adding libraries – http://192.168.1.231:32400/web/index.html
If you are having trouble, there are a few resources that may help.
- DigitalOcean also have great articles on setting up a Centos 7 server.
- If you’re having permission issues – check out this page: https://support.plex.tv/hc/en-us/articles/200288596-Linux-Permissions-Guide