Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
addDateHeader example
if
(
!
$headers
->
has
(
'Sender'
)
)
{
throw
new
LogicException
(
'An email must have a "From" or a "Sender" header.'
)
;
}
$headers
->
addMailboxListHeader
(
'From',
[
$headers
->
get
(
'Sender'
)
->
getAddress
(
)
]
)
;
}
if
(
!
$headers
->
has
(
'MIME-Version'
)
)
{
$headers
->
addTextHeader
(
'MIME-Version', '1.0'
)
;
}
if
(
!
$headers
->
has
(
'Date'
)
)
{
$headers
->
addDateHeader
(
'Date',
new
\
DateTimeImmutable
(
)
)
;
}
// determine the "real" sender
if
(
!
$headers
->
has
(
'Sender'
)
&& \
count
(
$froms
=
$headers
->
get
(
'From'
)
->
getAddresses
(
)
)
> 1
)
{
$headers
->
addMailboxHeader
(
'Sender',
$froms
[
0
]
)
;
}
if
(
!
$headers
->
has
(
'Message-ID'
)
)
{
$headers
->
addIdHeader
(
'Message-ID',
$this
->
generateMessageId
(
)
)
;
}
public
function
testAddMailboxListHeaderDelegatesToFactory
(
)
{
$headers
=
new
Headers
(
)
;
$headers
->
addMailboxListHeader
(
'From',
[
'person@domain'
]
)
;
$this
->
assertNotNull
(
$headers
->
get
(
'From'
)
)
;
}
public
function
testAddDateHeaderDelegatesToFactory
(
)
{
$dateTime
=
new
\
DateTimeImmutable
(
)
;
$headers
=
new
Headers
(
)
;
$headers
->
addDateHeader
(
'Date',
$dateTime
)
;
$this
->
assertNotNull
(
$headers
->
get
(
'Date'
)
)
;
}
public
function
testAddTextHeaderDelegatesToFactory
(
)
{
$headers
=
new
Headers
(
)
;
$headers
->
addTextHeader
(
'Subject', 'some text'
)
;
$this
->
assertNotNull
(
$headers
->
get
(
'Subject'
)
)
;
}
public
function
testAddParameterizedHeaderDelegatesToFactory
(
)
{
if
(
!
$headers
->
has
(
'Sender'
)
)
{
throw
new
LogicException
(
'An email must have a "From" or a "Sender" header.'
)
;
}
$headers
->
addMailboxListHeader
(
'From',
[
$headers
->
get
(
'Sender'
)
->
getAddress
(
)
]
)
;
}
if
(
!
$headers
->
has
(
'MIME-Version'
)
)
{
$headers
->
addTextHeader
(
'MIME-Version', '1.0'
)
;
}
if
(
!
$headers
->
has
(
'Date'
)
)
{
$headers
->
addDateHeader
(
'Date',
new
\
DateTimeImmutable
(
)
)
;
}
// determine the "real" sender
if
(
!
$headers
->
has
(
'Sender'
)
&& \
count
(
$froms
=
$headers
->
get
(
'From'
)
->
getAddresses
(
)
)
> 1
)
{
$headers
->
addMailboxHeader
(
'Sender',
$froms
[
0
]
)
;
}
if
(
!
$headers
->
has
(
'Message-ID'
)
)
{
$headers
->
addIdHeader
(
'Message-ID',
$this
->
generateMessageId
(
)
)
;
}
use
Symfony\Component\Serializer\Normalizer\PropertyNormalizer;
use
Symfony\Component\Serializer\Serializer;
class
MessageTest
extends
TestCase
{
public
function
testConstruct
(
)
{
$m
=
new
Message
(
)
;
$this
->
assertNull
(
$m
->
getBody
(
)
)
;
$this
->
assertEquals
(
new
Headers
(
)
,
$m
->
getHeaders
(
)
)
;
$m
=
new
Message
(
$h
=
(
new
Headers
(
)
)
->
addDateHeader
(
'Date',
new
\
DateTimeImmutable
(
)
)
,
$b
=
new
TextPart
(
'content'
)
)
;
$this
->
assertSame
(
$b
,
$m
->
getBody
(
)
)
;
$this
->
assertEquals
(
$h
,
$m
->
getHeaders
(
)
)
;
$m
=
new
Message
(
)
;
$m
->
setBody
(
$b
)
;
$m
->
setHeaders
(
$h
)
;
$this
->
assertSame
(
$b
,
$m
->
getBody
(
)
)
;
$this
->
assertSame
(
$h
,
$m
->
getHeaders
(
)
)
;
}
public
function
testGetPreparedHeadersThrowsWhenNoFrom
(
)
{
use
Symfony\Component\Mime\Part\TextPart;
/** * @requires extension openssl */
class
SMimeSignerTest
extends
SMimeTestCase
{
public
function
testSignedMessage
(
)
{
$message
=
new
Message
(
(
new
Headers
(
)
)
->
addDateHeader
(
'Date',
new
\
DateTimeImmutable
(
'2019-04-07 10:36:30',
new
\
DateTimeZone
(
'Europe/Paris'
)
)
)
->
addMailboxListHeader
(
'From',
[
'
[email protected]
'
]
)
,
new
TextPart
(
'content'
)
)
;
$signer
=
new
SMimeSigner
(
$this
->samplesDir.'sign.crt',
$this
->samplesDir.'sign.key'
)
;
$signedMessage
=
$signer
->
sign
(
$message
)
;
$this
->
assertMessageSignatureIsValid
(
$signedMessage
,
$message
)
;
}
public
function
testSignEncryptedMessage
(
)
{