Coder Social home page Coder Social logo

Comments (15)

CozC avatar CozC commented on August 21, 2024 2

from dbmail.

CozC avatar CozC commented on August 21, 2024 1

@rebootcode there is no clear documentation but analyzing the code I have came out with some results. Another user have asked, same how, the same question and I gave there some answers.

Please refer to Issue 17
Also you should take a look at a plugin developed for roundcube roundcube-dbmail

from dbmail.

langemeijer avatar langemeijer commented on August 21, 2024

It is possible, but I wouldn't recommend it because:

  • You would lock yourself into using dbmail as a mail store solution.
  • You would have to re-implement the way dbmail stores mail into a database in your webmail client, possibly making mistakes that will affect dbmail's operation. Mind you that you not only will have to read from the database but also modify it. Marking mails as read, but possibly also store draft and sent mails into it, modify folders, delete and move mails etc.
  • Writing a fully featured mail client is a lot of work. There is a lot of message parsing, address parsing and lots-and-lots of RFC reading involved. The storage backend of your mail application (being either imap or direct dbmail database connection) will not really be a big part of your endeavor.

Also, to be blunt, if you really need to ask 'Can I create and use my own Web Interface on the provided database to set up a Mailing application?' here, I wonder if you can. At least understand that there is probably not going to be someone here that will hold your hand while you shoot yourself in the foot.

That said: I know it has been done before, probably multiple times. I have written and modified PHP code that accesses the dbmail database directly myself, but I cannot share this with you for multiple reasons. Primarily because it only implements the basic stuff that this application needed, and the code is not designed to be expanded into a full email client storage backend. Secondary because it's not my own code.

Why do you prefer to create your own web interface? And if you do, why wouldn't you just use imap?

from dbmail.

rebootcode avatar rebootcode commented on August 21, 2024

It is possible, but I wouldn't recommend it because:

  • You would lock yourself into using dbmail as a mail store solution.

=> hmm, not sure, what does this mean, "mail store solution".

  • You would have to re-implement the way dbmail stores mail into a database in your webmail client, possibly making mistakes that will affect dbmail's operation. Mind you that you not only will have to read from the database but also modify it. Marking mails as read, but possibly also store draft and sent mails into it, modify folders, delete and move mails etc.

=> Modify folders? is not dbmail, database only mail system? unlike system account mail thing?

  • Writing a fully featured mail client is a lot of work. There is a lot of message parsing, address parsing and lots-and-lots of RFC reading involved. The storage backend of your mail application (being either imap or direct dbmail database connection) will not really be a big part of your endeavor.

=> Yes, I do understand and I am quite confident, these are not major task for me.

Also, to be blunt, if you really need to ask 'Can I create and use my own Web Interface on the provided database to set up a Mailing application?' here, I wonder if you can. At least understand that there is probably not going to be someone here that will hold your hand while you shoot yourself in the foot.

=> Yes, I understand - the only thing I need from dbmail is when the server receives mail, it stores them in the database and not in folder, plus, I don't have to create multiple system accounts or folder-based email account to create MAIL. I just want "user's email" created as database row and done.

Why do you prefer to create your own web interface? And if you do, why wouldn't you just use imap?

=> My Requirement is not in IMAP, I need a server to store mail-in database as soon as it receives and email accounts are created in the database and not as FOLDER or system user.

I need to create approx 300-1200 daily usable email accounts and this is only possible and scalable if we have DB based solution and not system user or email account.

Something like virtual mail that dbmail does.

from dbmail.

langemeijer avatar langemeijer commented on August 21, 2024

Good. Build a database cluster to store the mail, setup at least two mail servers with dbmail and you'll have a very reliable mail server setup. dbmail is a very good solution for this. There is no good reason to access the mail database directly, as you can get mails through imap very efficiently. I'd slap a webserver cluster with roundcube on it and you're done.

Roundcube has 150 contributors, 11.500 commits to it's code and a very large user base. It would probably take you years to build something similar, and at least many months to build something that is barely usable.

Modify folders? is not dbmail, database only mail system? unlike system account mail thing?

Any modern email client supports mail folders. This is how you allow your users to organize their mail. All except gmail, they call it 'tags', but it essentially is the same.

Yes, I do understand and I am quite confident, these are not major task for me.

I just want "user's email" created as database row and done.

You have a very simplistic view on how mail should be stored in a database but your confidence is inspiring.

You haven't really answered my question though.

Why do you prefer to create your own web interface? And if you do decide to write your own, why wouldn't you just use imap to access the mail on the mail server?

from dbmail.

rebootcode avatar rebootcode commented on August 21, 2024

Why do you prefer to create your own web interface? And if you do decide to write your own, why wouldn't you just use IMAP to access the mail on the mail server?

  • It's my requirement to create my own mail interface for limited people around me.
  • accessing mail is not the issue, I can do via IMAP, the problem is storing "incoming mail" on the server and creating a 300-1200 email account which is virtual and will work just like the user system in the database.

=> Do you have any better solution than "dbmail" for "storing incoming mail into database" and create virtual configurable email account stored in database?

from dbmail.

KenjiBrown avatar KenjiBrown commented on August 21, 2024

I need to create approx 300-1200 daily usable email accounts and this is only
possible and scalable if we have DB based solution and not system user or email account.

Only three tables involved in creating a new user:
dbmail-users <--- The user account
dbmail-aliases <--- e-mail addresses that receive the messages and deliver them to the user
dbmail-mailboxes <--- At least INBOX should be created for a user to receive e-mail

from dbmail.

rebootcode avatar rebootcode commented on August 21, 2024

Only three tables involved in creating a new user:
dbmail-users <--- The user account
dbmail-aliases <--- e-mail addresses that receive the messages and deliver them to the user
dbmail-mailboxes <--- At least INBOX should be created for a user to receive e-mail

Is there any video tutorial available? as I recently installed everything and created a user account, but none of them showed up on database - It was frustrating and I started installing postfix, dovecot, and binding with basis PHP script on mail received.

Is there any video tutorial to configure & install dbmail

from dbmail.

CozC avatar CozC commented on August 21, 2024

salve rebootcode I can give a document I use it to install dbmail. It may help you but you should know a little bit of linux to use it.

from dbmail.

CozC avatar CozC commented on August 21, 2024

I need to create approx 300-1200 daily usable email accounts and this is only
possible and scalable if we have DB based solution and not system user or email account.

Only three tables involved in creating a new user:
dbmail-users <--- The user account
dbmail-aliases <--- e-mail addresses that receive the messages and deliver them to the user
dbmail-mailboxes <--- At least INBOX should be created for a user to receive e-mail

After you have configured the postfix and dbmail and made them working together you can use the following sql script to create an user
`set @L_USER='[user account]';
set @L_PASSWD='[password]';
set @L_ALIAS='[[email protected]]';

insert into dbmail_users set userid=@L_USER, passwd=@L_PASSWD, encryption_type='';
insert into dbmail_aliases set alias=@L_ALIAS, deliver_to=(select user_idnr from dbmail_users where userid=@L_USER);
insert into dbmail_mailboxes set name='INBOX', owner_idnr=(select user_idnr from dbmail_users where userid=@L_USER);
insert into dbmail_mailboxes set name='Sent', owner_idnr=(select user_idnr from dbmail_users where userid=@L_USER);
insert into dbmail_mailboxes set name='Trash', owner_idnr=(select user_idnr from dbmail_users where userid=@L_USER);
insert into dbmail_mailboxes set name='Spam', owner_idnr=(select user_idnr from dbmail_users where userid=@L_USER);`

from dbmail.

rebootcode avatar rebootcode commented on August 21, 2024

@CozC , Please share document - that will be helpful.

Thanks

from dbmail.

rebootcode avatar rebootcode commented on August 21, 2024

salve rebootcode I can give a document I use it to install dbmail. It may help you but you should know a little bit of linux to use it.

Please share docs that can help in Installation in today's Ubuntu 18.04

from dbmail.

rebootcode avatar rebootcode commented on August 21, 2024

@CozC - Thank you so much, this was very very helpful.

Is there any documentation for MySQL/MariaDB tables? cause tables are very confusing to find and search data, like, let's say, "If I want to search and list" all mail for "[email protected]", I have no idea, where these data are coming from.

Is there any documentation for database table, so that we understand how to fetch and process data?

from dbmail.

rebootcode avatar rebootcode commented on August 21, 2024

if people are asking, that probably means - it is need of an hour. But Thanks for sharing the roundcube, I will have a look there.

Thank you so much for all this great help :)

from dbmail.

CozC avatar CozC commented on August 21, 2024

It is not about explaining them it is about explaining the relation between them.
Please find attached the schema. The issue 17 does give you some SQL queries to extract information from the database.
Given your request I will do some short doc to create such doc. In the meantime please see attached the schema.

DBMail Schema

from dbmail.

Related Issues (20)

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.