package mailfull import ( "fmt" "path/filepath" "time" ) // GenerateConfigPostfix generate a configuration for Postfix. func (r *Repository) GenerateConfigPostfix() string { cfg := fmt.Sprintf(` # # Sample configuration: main.cf # Generated by mailfull %s on %s # #myhostname = host.example.com mydomain = $myhostname myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks_style = host recipient_delimiter = - message_size_limit = 10240000 mailbox_size_limit = 51200000 virtual_mailbox_limit = 51200000 virtual_mailbox_domains = hash:%s virtual_mailbox_base = %s virtual_mailbox_maps = hash:%s virtual_uid_maps = static:%d virtual_gid_maps = static:%d virtual_alias_maps = hash:%s transport_maps = regexp:%s alias_maps = hash:/etc/aliases, hash:%s alias_database = hash:/etc/aliases, hash:%s smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem #smtpd_tls_CAfile = smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 smtp_tls_security_level = may smtp_tls_loglevel = 1 smtpd_tls_security_level = may smtpd_tls_loglevel = 1 `, Version, time.Now().Format(time.RFC3339), filepath.Join(r.DirDatabasePath, FileNameDbDomains), r.DirMailDataPath, filepath.Join(r.DirDatabasePath, FileNameDbMaildirs), r.uid, r.gid, filepath.Join(r.DirDatabasePath, FileNameDbDestinations), filepath.Join(r.DirDatabasePath, FileNameDbLocaltable), filepath.Join(r.DirDatabasePath, FileNameDbForwards), filepath.Join(r.DirDatabasePath, FileNameDbForwards), ) return cfg[1:] } // GenerateConfigDovecot generate a configuration for Dovecot. func (r *Repository) GenerateConfigDovecot() string { cfg := fmt.Sprintf(` # # Sample configuration: dovecot.conf # Generated by mailfull %s on %s # protocols = imap pop3 auth_mechanisms = plain login mail_location = maildir:~/Maildir ssl = yes ssl_cert =