Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
mathieu
potage
Commits
9a94e022
Commit
9a94e022
authored
Sep 01, 2018
by
Mat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lancer les mails en ligne de commande, options: test, single ou mailing
parent
e7414e79
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
62 additions
and
13 deletions
+62
-13
src/PotageBundle/Command/SendMailCommand.php
src/PotageBundle/Command/SendMailCommand.php
+55
-7
src/PotageBundle/Controller/DefaultController.php
src/PotageBundle/Controller/DefaultController.php
+3
-1
src/PotageBundle/Services/Newsletter.php
src/PotageBundle/Services/Newsletter.php
+4
-5
No files found.
src/PotageBundle/Command/SendMailCommand.php
View file @
9a94e022
...
...
@@ -2,30 +2,33 @@
namespace
PotageBundle\Command
;
use
PotageBundle\Entity\Groupe
;
use
PotageBundle\Entity\Lettre
;
use
PotageBundle\Services\LettreToken
;
use
PotageBundle\Services\Newsletter
;
use
Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand
;
use
Symfony\Component\Console\Input\InputArgument
;
use
Symfony\Component\Console\Input\InputInterface
;
use
Symfony\Component\Console\Output\OutputInterface
;
class
SendMailCommand
extends
ContainerAwareCommand
{
private
$mailer
;
private
$newsletter
;
private
$lettreToken
;
/**
* SendMailCommand constructor.
*
* @param \Swift_Mailer $mailer
* @param Newsletter $newsletter
* @param LettreToken $lettreToken
*/
public
function
__construct
(
Newsletter
$newsletter
,
LettreToken
$lettreToken
)
public
function
__construct
(
\
Swift_Mailer
$mailer
,
Newsletter
$newsletter
,
LettreToken
$lettreToken
)
{
parent
::
__construct
();
$this
->
mailer
=
$mailer
;
$this
->
newsletter
=
$newsletter
;
$this
->
lettreToken
=
$lettreToken
;
}
...
...
@@ -38,7 +41,10 @@ class SendMailCommand extends ContainerAwareCommand
{
$this
->
setName
(
'potage:mail:send'
)
->
setDescription
(
"Test d'envoi d'une infolettre!"
);
->
setDescription
(
"Test d'envoi de mail(s) !"
)
->
setHelp
(
'Must precise if send a test mail, a single mail or a mailing
'
)
->
addArgument
(
'what'
,
InputArgument
::
REQUIRED
,
'"test", "single" or "mailing" ?'
);
}
/**
...
...
@@ -51,18 +57,60 @@ class SendMailCommand extends ContainerAwareCommand
*/
protected
function
execute
(
InputInterface
$input
,
OutputInterface
$output
)
{
/**
* @var Lettre $lettre
*/
$lettre
=
$this
->
getContainer
()
->
get
(
'doctrine'
)
->
getManager
()
->
getRepository
(
'PotageBundle:Lettre'
)
->
findOneForSend
(
7
);
$retour
=
$this
->
newsletter
->
sendLettreToGroup
(
$lettre
,
$this
->
lettreToken
);
$what
=
$input
->
getArgument
(
'what'
);
switch
(
$what
)
{
for
(
$i
=
0
;
$i
<
count
(
$retour
);
$i
++
)
{
$output
->
writeln
(
$i
.
' | '
.
$retour
[
$i
][
'to'
]
.
' | '
.
$retour
[
$i
][
'result'
]);
case
"test"
:
$message
=
(
new
\
Swift_Message
(
'Hello Email'
))
->
setFrom
(
'postmaster@potage.domainepublic.site'
)
->
setTo
(
'mat@collectifs.net'
)
->
setBody
(
'coucou, ceci est un test'
,
'text/html'
)
;
$this
->
mailer
->
send
(
$message
);
$output
->
writeln
(
'Mail sent.'
);
break
;
case
"single"
:
$to
=
array
(
'email'
=>
'mat@collectifs.net'
,
'fullName'
=>
'Matla'
,
'token'
=>
null
);
$retour
=
$this
->
newsletter
->
sendMail
(
$to
,
"[Potage][cli] envoi de la lettre à une seul destinataire"
,
$lettre
);
$retourMsg
=
(
$retour
===
1
)
?
"
\e
[1;32mSent
\e
[0m
\n
"
:
"
\e
[1;31mError
\e
[0m
\n
"
;
$output
->
writeln
(
'Sending mail .. '
.
$retourMsg
);
break
;
case
"mailing"
:
$retour
=
$this
->
newsletter
->
sendLettreToGroup
(
$lettre
,
$this
->
lettreToken
);
for
(
$i
=
0
;
$i
<
count
(
$retour
);
$i
++
)
{
$output
->
writeln
(
$i
.
' | '
.
$retour
[
$i
][
'to'
]
.
' | '
.
$retour
[
$i
][
'result'
]);
}
break
;
}
}
...
...
src/PotageBundle/Controller/DefaultController.php
View file @
9a94e022
...
...
@@ -23,6 +23,7 @@ class DefaultController extends MasterController
/**
* TEMPORAIRE une page de test
* envoie une infolettre manuellement lorsqu'on déclenche un submit
* TODO déclenchement de l'envoi lorsque le producteur passe la lettre au statut 'Envoyé'
*
* @param Request $request
* @param Newsletter $newsletter
...
...
@@ -78,6 +79,7 @@ class DefaultController extends MasterController
/**
* La page today affiche le(s) offres disponibles pour un user
* identifié sur base du token passé dans le lien
* TODO les offres en cours, pour un utilisateur connecté
*
* @param Request $request
* @param LettreToken $lettreToken
...
...
@@ -112,7 +114,7 @@ class DefaultController extends MasterController
}
/**
*
pour debug
*
Debug token
*/
$tokenEncoded
=
$request
->
query
->
get
(
'token'
);
$tokenDecoded
=
$lettreToken
->
decodePotageAccess
(
$tokenEncoded
);
...
...
src/PotageBundle/Services/Newsletter.php
View file @
9a94e022
...
...
@@ -105,13 +105,13 @@ class Newsletter
*
* @param array $to
* @param $subject
* @param
$body
* @param
Lettre $lettre
* @return int
* @throws \Twig_Error_Loader
* @throws \Twig_Error_Runtime
* @throws \Twig_Error_Syntax
*/
public
function
sendMail
(
$to
,
$subject
,
$body
)
public
function
sendMail
(
$to
,
$subject
,
Lettre
$lettre
)
{
$mailer
=
$this
->
container
->
get
(
'mailer'
);
$twig
=
$this
->
container
->
get
(
'twig'
);
...
...
@@ -125,7 +125,7 @@ class Newsletter
$twig
->
render
(
'@Potage/Mail/bodyMail.html.twig'
,
array
(
'to'
=>
$to
,
'subject'
=>
$subject
,
'body'
=>
$
body
,
'body'
=>
$
this
->
getBody
(
$lettre
)
,
)),
'text/html'
);
...
...
@@ -148,7 +148,6 @@ class Newsletter
public
function
sendLettreToGroup
(
Lettre
$lettre
,
LettreToken
$lettreToken
)
{
$subject
=
$lettre
->
getSubject
();
$body
=
$this
->
getBody
(
$lettre
);
/**
* A partir de l'infolettre on récupère les destinataires
...
...
@@ -176,7 +175,7 @@ class Newsletter
$ret
[
$i
]
=
array
(
'to'
=>
$this
->
parseMail
(
$to
),
'result'
=>
$this
->
sendMail
(
$to
,
$subject
,
$
body
)
===
1
?
'sent'
:
'error'
'result'
=>
$this
->
sendMail
(
$to
,
$subject
,
$
lettre
)
===
1
?
'sent'
:
'error'
);
}
return
$ret
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment