atm/mailbundle

Mailing management bundle

Maintainers

👁 ALTUMA

Package info

bitbucket.org/ALTUMA/atm_mail

Type:symfony-bundle

pkg:composer/atm/mailbundle

Statistics

Installs: 306

Dependents: 0

Suggesters: 0

1.0.20 2019-03-13 08:53 UTC

Requires

  • php: >=5.3.9

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

MIT 285805da60638c01ffe3fcf88d81da53a1fa4f94

  • Alberto Tuzon <atuzon1986.woop@gmail.com>

atm mail bundle


README

A Mail Manager System

Installation

Install through composer:

php -d memory_limit=-1 composer.phar require atm/mailbundle

In your AppKernel

public function registerbundles()
{
 return [
 	...
 	...
 	new ATM\MailBundle\ATMMailBundle(),
 ];
}

Routing

Append to main routing file:

# app/config/routing.yml
 
atm_mail:
 resource: "@ATMMailBundle/Resources/config/routing.yml"
 prefix: /

You also have to put outside of your firewalls the following route for unsubscribing users

atm_mail_unsubscribe_user:
 path: /unsubscribe/{userId}
 defaults: { _controller: "ATMMailBundle:Mail:unsubscribeUser" }

Configuration sample

Default values are shown below:

# app/config/config.yml
 
atm_mail:
 class:
 model:
 user: YourBundle\Entity\User
 # Domain of your site
 site_domain: 'atmbundles.com'
 # Folder name where the mail templates are gonna be stored
 templates_folder: 'mail_templates'
 # From address to use for sending mails
 from_address: 'example@example.com'
 # From name to use for sending mails
 from_name: 'EXAMPLE'
 # To Address to use for checking that the commands had been executed successfully 
 checking_to_address: 'alberto.tuzon@manicamedia.com'
 # Your DYN Key
 dyn_api_key: 'yourkeygoeshere'
 # User types to use for mailings
 user_types: ['girls','exmembers','active_users','all']

User Types Conditions

You must define the following function in your User Repository for filtering the different types of users you have for sending mails.


namespace YourBundle\Repository;

use Doctrine\ORM\EntityRepository;

class UserRepository extends EntityRepository
{
 public function getAtmMailingUserTypeWhereClause($qb,$andX,$userType){

 switch($userType){
 case 'usertype1':
 $andX->add($qb->expr()->like('u.roles',$qb->expr()->literal('%ROLE1%')));
 $andX->add($qb->expr()->eq('u.locked',0));
 $andX->add($qb->expr()->eq('u.enabled',1));
 break;
 case 'usertype2':
 $andX->add($qb->expr()->notLike('u.roles',$qb->expr()->literal('%ROLE2%')));
 $andX->add($qb->expr()->eq('u.locked',0));
 $andX->add($qb->expr()->eq('u.enabled',1));
 break;
 case 'usertype3':
 $andX->add($qb->expr()->notLike('u.roles',$qb->expr()->literal('%ROLE3%')));
 $andX->add($qb->expr()->lte('u.expiresAt','CURRENT_TIMESTAMP()'));
 break;
 case 'all':
 return null;
 break;
 }

 return $andX;
 }
}