93 lines
2.4 KiB
C#
93 lines
2.4 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace SMTPServer
|
|
{
|
|
public class MysqlDB : DbContext
|
|
{
|
|
const string Hostname = "192.168.178.148";
|
|
const string DatabaseName = "vmail";
|
|
const string Uid = "root";
|
|
const string Pwd = "fabian.11";
|
|
|
|
public DbSet<Domains> Domains { get; set; }
|
|
|
|
public DbSet<Accounts> Accounts { get; set; }
|
|
|
|
public DbSet<Folders> Folders { get; set; }
|
|
|
|
public DbSet<Aliases> Aliases { get; set; }
|
|
|
|
public DbSet<Mails> Mails { get; set; }
|
|
|
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
=> optionsBuilder.UseMySql(@"Server=" + Hostname + ";database=" + DatabaseName + ";uid=" + Uid + ";pwd=" + Pwd + ";");
|
|
}
|
|
|
|
public class Domains
|
|
{
|
|
public int Id { get; set; }
|
|
public string Domain { get; set; }
|
|
public bool IsMail { get; set; }
|
|
}
|
|
|
|
public class Accounts
|
|
{
|
|
public int Id { get; set; }
|
|
[MaxLength(255)]
|
|
public string Name { get; set; }
|
|
public int Domain { get; set; }
|
|
public string Password { get; set; }
|
|
public bool CatchAll { get; set; }
|
|
public bool Active { get; set; }
|
|
}
|
|
|
|
public class Folders
|
|
{
|
|
public int Id { get; set; }
|
|
public int AccountId { get; set; }
|
|
[MaxLength(100)]
|
|
public string Name { get; set; }
|
|
public int StandardFolder { get; set; }
|
|
}
|
|
|
|
public enum StandardFolders
|
|
{
|
|
INBOX = 1,
|
|
TRASH = 2,
|
|
SPAM = 3
|
|
}
|
|
|
|
public class Aliases
|
|
{
|
|
public int Id { get; set; }
|
|
[MaxLength(255)]
|
|
public string SourceName { get; set; }
|
|
public int SourceDomain { get; set; }
|
|
public int DestinationAccount { get; set; }
|
|
}
|
|
|
|
public class Mails
|
|
{
|
|
public int Id { get; set; }
|
|
public int AccountId { get; set; }
|
|
public DateTime ReceiveDate { get; set; }
|
|
public string Data { get; set; }
|
|
|
|
[MaxLength(15)]
|
|
public string SendedByServerIp { get; set; }
|
|
|
|
[MaxLength(255)]
|
|
public string From { get; set; }
|
|
|
|
[MaxLength(255)]
|
|
public string To { get; set; }
|
|
public int Folder { get; set; }
|
|
public bool Readed { get; set; }
|
|
}
|
|
} |