Giter Club home page Giter Club logo

backupmail's Introduction

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

What is BackupMail?

I have a lot of mails accounts, I think it's a problem, but that is another question. One day thinking about backups my info I thounght how it will be to backups all my mails in my mail accounts, phisically.

User demo: admin | Pass demo: backupmail

» Explore the docs « · » View Demo « · » Report Bug « · » Request Feature «

Send a sample email to: [email protected]

Table of Contents

About The Project

Alt

Screenshots

Temporal HOME PAGE screenshot

This is just a temporal home page screenshot.

Temporal TAG PAGE screenshot

This is just a temporal tag page screenshot.

Login PAGE screenshot

This is just a temporal login page screenshot.

This is a work in progress!

Built With

Getting Started

To get your own backup mail working, you need a server with PHP7 and extension Mailparse installed. Yo need to install composer to fetch dependencies.

Prerequisites

Install mailparse extension

Remember PHP compability

  • Tested to PHP 7.4.33

Ubuntu, Debian & derivatives

sudo apt install php-cli php-mailparse

Others platforms

sudo apt install php-cli php-pear php-dev php-mbstring
pecl install mailparse

From source

AAAAMMDD should be php-config --extension-dir

git clone https://github.com/php/pecl-mail-mailparse.git
cd pecl-mail-mailparse
phpize
./configure
sed -i 's/#if\s!HAVE_MBSTRING/#ifndef MBFL_MBFILTER_H/' ./mailparse.c
make
sudo mv modules/mailparse.so /usr/lib/php/AAAAMMDD/
echo "extension=mailparse.so" | sudo tee /etc/php/7.1/mods-available/mailparse.ini
sudo phpenmod mailparse

Windows

You need to download mailparse DLL from http://pecl.php.net/package/mailparse and add the line "extension=php_mailparse.dll" to php.ini accordingly.

Installation

  1. Clone the backupmail repository
git clone https://github.com/Iguannaweb/backupmail.git
  1. Run composer install to fetch dependencies
php composer.phar install
  1. Create a mysql database and import the file backupmail.sampledb.sql

  2. Modify dbc.sample.php with the database credentials and rename to dbc.php

  3. Login to access with user admin and password backupmail

Usage

  1. First of all you need to protect the access to your domain. if it will be public. We recomend create a .htaccess/.htpassword files to add an extra layer of security.
  2. Config one mail on the mail.config.sample.php, rename to mail.config.php and check the connection con ./cron_mail.php.
  3. Test the folder imap structure with cron_mail_test.php
  4. Start fetching your mails, navigate and tag them all!
  5. Create task or favorite your preferred mails.

For more examples, please refer to the Documentation

Cron

  1. From terminal write this
crontab -e
  1. Write down this to backup your mails every hour
0 * * * * curl https://yourdomain.com/cron_mail.php

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Francisco Gálvez - Write me an email!
If you want to contact me, the best way is write an email or open an issue here, I'm not really active on social networks.

Project Link: https://github.com/Iguannaweb/backupmail

Acknowledgements

Star History

Star History Chart

backupmail's People

Contributors

crishnakh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

backupmail's Issues

Simple tag system

I just download the mails, so It's important re-tag all mails again with a general system for all your mails.

Configuration default, don't load images by default

Is your feature request related to a problem? Please describe.
Yep, now the images always load on mails when reading

Describe the solution you'd like
Configuration parametter to define default configuration.

Describe alternatives you've considered
Ask on every email viewer on top to load it. As a secure step.

Additional context

Forgot password function

It's good to let people reset his password. When i tal about people, it's about administrators

Change admin data

Well... I made a local instalation... users can't change his data (pass for example) and remember a screen to add mail configuration easily.

Database

I made a database to better organize mails and pagination. I think I will keep it, but we keep the files and do not delete any file, just mark it as deleted.

PHP 7.4

Is your feature request related to a problem? Please describe.
Yep

Describe the solution you'd like
Check the code to work with php 7.4 (almost)

Describe alternatives you've considered
Nope

Additional context
I've checked php 7.4 but i don't know if it's about mailparse extension or other thing. Yaiiii

The second Cronjob

Is your feature request related to a problem? Please describe.
Yes, we need more information with a second cronjob, for example especific email information or especific account information.

Describe the solution you'd like
Make a second cronjob.

Describe alternatives you've considered
Other alternatives maybe are worse.

Additional context
We need for example from field and other fields related with the email, but i think I need to read the email to get this information. I thinks it's important for example aditional information. If the from information is on the first scan i think I maybe lost save it. When making the stats I wanted to search with the "from" email, but i think I'm not saving it xD

PHP 8 Baby.

Is your feature request related to a problem? Please describe.
NO

Describe the solution you'd like
PHP 7.4 is obsolete, ¿Is it tested on PHP 8.XX?

Describe alternatives you've considered
No alternatives, it's the future now.

Additional context
Well, php 7.4 is obsolete, i think we can test it without problem in php 8, but I need to check it.

Cron Task to fetch mails

I made a file to be called for fetch the mails from the accounts listed on config.mail.php, every x minutes or hours

Github pages documentation

I just startet to create a documentation/project page with github page and bootstrap 4 github pages.

I'll make a listo of things I need to complete.

  • Home
  • Installation guide
  • Screenshots
  • Roadmap

Attachments page?

It will be interesting have an attachments page for catalogue all attachments.

Delete tags

Describe the bug
It's not possible delete a created tag

Expected behavior

  1. Delete de tag configuration
  2. Delete de tag asociated to mails
  3. Before doing this warning to the user.

Bookmark's mails as favourite

This is the well known system with stars. Just sometimes you want to remember important mails, soy you starred it.

No button to create tag on edit tag

Describe the bug
If you edit a tag, you need a button to add new tag, otherwise you need to use de top menu

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'tag'
  2. Click on 'one tag to edit'
  3. Cancel de edition or come back to tag home

Expected behavior
Better control of tag add and edit, cancel butons and add tag button, for better navigation.

Screenshots
No need

Desktop (please complete the following information):

  • OS: No need
  • Browser Chrome
  • Version No need

Smartphone (please complete the following information):

  • Device: No need
  • OS: No need
  • Browser No need
  • Version No need

Additional context
No need

Finish oauth Gmail

Is your feature request related to a problem? Please describe.
You can't connect via password to gmail accounts.

Describe the solution you'd like
Use oauth

Describe alternatives you've considered
Don't know if I can use password apps instead

Additional context

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.