blob: 6d740a66047d9302d8b25a531bbe2ee83ee42f67 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<?php
use Symfony\Component\Mailer\SentMessage;
use Symfony\Component\Mailer\Transport\AbstractTransport;
use Symfony\Component\Mime\Email;
class StudipDebugTransport extends AbstractTransport
{
private string $logfile;
public function __construct(string $logfile)
{
parent::__construct();
$this->logfile = $logfile;
}
protected function doSend(SentMessage $message): void
{
$email = $message->getOriginalMessage();
if (!$email instanceof Email) {
return;
}
$username = $GLOBALS['user']->username ?? 'unknown';
$entry = "\n-- " . date('d.m.Y H:i:s') . " " . $username;
$entry .= "\nTo: " . implode(', ', array_map(fn($a) => $a->toString(), $email->getTo()));
$entry .= "\nSubject: " . $email->getSubject();
$headers = '';
foreach ($email->getHeaders()->all() as $header) {
$headers .= $header->toString() . "\n";
}
if (strlen(trim($headers))) {
$entry .= "\n" . $headers;
}
$entry .= "\n";
if ($email->getTextBody()) {
$entry .= $email->getTextBody();
} elseif ($email->getHtmlBody()) {
$entry .= $email->getHtmlBody();
}
$entry .= "\n";
file_put_contents($this->logfile, $entry, FILE_APPEND);
}
public function __toString(): string
{
return 'studip-debug://default';
}
}
|