Compare commits

..

1 Commits

Author SHA1 Message Date
Masin Wiedner f7efccaffb comply to RFC3834: set header Auto-Submitted: auto-generated for mails; add space in subject
Signed-off-by: Masin  Wiedner <masin.wiedner@wikimedia.de>
2024-12-03 09:53:11 +00:00
3 changed files with 66 additions and 82 deletions

View File

@ -1,8 +1,6 @@
<?php
$CONVERT_CMD = "/usr/local/bin/convert";
$PDFTK_CMD = "/usr/local/bin/pdftk";
$GS_CMD = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%s.pdf";
$mailHost = 'mailserver.example.com'; // Specify main and backup server
$mailPort = 587; // Set the SMTP port

View File

@ -112,7 +112,7 @@
<script>
error_alert_projectid = "<?php echo $localeYaml['error_alert_projectid'][$loc]?>";
error_alert_realname = "<?php echo $localeYaml['error_alert_realname'][$loc]?>";
error_alert_realname = "<?php echo $localeYaml['error_alert_realname'][$loc]?>";
error_alert_email = "<?php echo $localeYaml['error_alert_email'][$loc]?>";
error_alert_iban = "<?php echo $localeYaml['error_alert_iban'][$loc]?>";
error_alert_bic = "<?php echo $localeYaml['error_alert_bic'][$loc]?>";

View File

@ -2,40 +2,45 @@
ob_start();
session_start();
$get = var_export( $_GET, true);
$request = var_export( $_REQUEST, true);
$session_keys = var_export( array_keys( $_SESSION ), true);
$session = var_export( $_SESSION, true);
$my_log = fopen( "/tmp/my.log", "w" );
#fwrite( $my_log, $get."\n" );
fwrite( $my_log, $request."\n" );
#fwrite( $my_log, $session_keys."\n" );
#fwrite( $my_log, gettype($_SESSION['lst'])."\n" );
#fwrite( $my_log, var_export($_SESSION['lst'], true)."\n" );
#fwrite( $my_log, $session );
fclose( $my_log );
# Query parameter 'lst' is set in download URL after submitting form for
# mailing
if (isset($_GET['lst']) && $_GET['lst']=='1'){
error_log("DOWNLOAD previously generated PDF\n");
if ($_GET['lst']=='1'){
$file = "Antrag.pdf";
header('Content-Disposition: attachment; filename="'. $file . '"');
header('Content-Length: ' . strlen($_SESSION['lst']));
echo $_SESSION['lst'];
die;
}
?>
<html>
<head>
<title>Kostenerstattungsforumlar</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Kube CSS -->
<link rel="stylesheet" href="css/kube.min.css">
<link rel="stylesheet" href="addons/kube-addons.min.css" />
<link rel="stylesheet" href="master.css" />
</head>
<body>
<?php
# starting new form submission
error_log("SUBMIT\n");
require_once "config.php";
require "config.php";
require "PHPMailer/PHPMailer.php";
require "PHPMailer/SMTP.php";
require "PHPMailer/Exception.php";
#$CONVERT_CMD = "/usr/bin/pdftk";
require_once('TCPDF/tcpdf.php');
class kaformPDF extends TCPDF {
@ -123,12 +128,13 @@ function mkFrontPDF(){
}
$thtml = mkTable();
// create new PDF document
$pdf = new kaformPDF(
PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,
# PDF_PAGE_ORIENTATION, PDF_UNIT, $pageLayout /*PDF_PAGE_FORMAT*/,
PDF_PAGE_ORIENTATION, PDF_UNIT, $pageLayout /*PDF_PAGE_FORMAT*/,
true, 'UTF-8', false);
// set document information
@ -417,13 +423,11 @@ $resultnam = tempnam("/tmp","karesult");
#$cmd = "$PDFTK_CMD";
#foreach ($pdfs as $filename){
# $cmd .= " $filename";
#}
#$cmd .= " cat output $resultnam.pdf";
$cmd = sprintf("$GS_CMD", $resultnam) . " " . join( " ", $pdfs);
$cmd = "$PDFTK_CMD";
foreach ($pdfs as $filename){
$cmd .= " $filename";
}
$cmd .= " cat output $resultnam.pdf";
error_log("EXEC CMD $cmd");
exec ($cmd);
@ -431,23 +435,22 @@ exec ($cmd);
$file = "$resultnam.pdf";
if ($_POST['sendmail']=='yes'){
error_log( "SENDMAIL has been requested");
$subj = sprintf("Kostenerstattungsantrag ueber %s %s", calcSum(), $_POST['currency']);
$subj = "Kostenerstattungsantrag ueber ".calcSum()." ".$_POST['currency'];
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->IsSMTP();
$mail->setFrom($mailFrom);
$mail->Subject = $subj;
$mail->addCustomHeader('Auto-Submitted', 'auto-generated'); // comply to RFC 3834 (https://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml)
$mail->Body = "Kostenerstattungsantrag ...";
$mail->AddAddress($mailDest);
if ($mailDestCC) {
@ -467,45 +470,34 @@ if ($_POST['sendmail']=='yes'){
die;
}
// Store resulting PDF in session store for later retrieval
$_SESSION['lst']=file_get_contents("$resultnam.pdf");
session_write_close();
$message = <<<EOS
<p>Dein Antrag wurde versendet.</p>
<p><a href="./submit.php?lst=1" target="_blank">Kopie des Antrags herunterladen</a></p>
<p><a href="./">Weiteren Antrag auf Kostenerstattung stellen</a></p>
EOS;
// die; // Form has been sent, HTML output has been generated
} else {
error_log( "DOWNLOAD has been requested");
$dl_filename = sprintf( "%s_%s.pdf", "Antrag", (new DateTime())->format('Y-m-d_G-i-s') );
header('Content-Disposition: attachment; filename="'. basename($dl_filename) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
$message = <<<EOS
<p>Dein Antrag wurde erstellt, du musst ihn nur noch speichern.</p>
<p><a href="./">Weiteren Antrag auf Kostenerstattung stellen</a></p>
EOS;
}
echo "Dein Antrag wurde versendet.<BR>";
?>
<html>
<head>
<title>Kostenerstattungsforumlar</title>
<meta charset="utf-8">
<!-- <div class="is-col">
<button type="button" onclick="downloadDocument(false);"
class="button is-orange"><?=_("Kopie des Antrags herunterladen")?></button>
</div> -->
<?php
echo '<a href="./submit.php?lst=1" target="_blank">Kopie des Antrags herunterladen</a>';
echo "<br>";
echo '<a href="./">
Weiteren Antrag auf Kostenerstattung stellen</a><BR>';
<meta name="viewport" content="width=device-width, initial-scale=1">
$_SESSION['lst']=file_get_contents("$resultnam.pdf");
session_write_close();
<!-- Kube CSS -->
<link rel="stylesheet" href="css/kube.min.css">
<link rel="stylesheet" href="addons/kube-addons.min.css" />
die;
<link rel="stylesheet" href="master.css" />
</head>
<body>
<?php echo $message; ?>
}
$file = "$resultnam.pdf";
header('Content-Disposition: attachment; filename="'. basename($file) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
?>
<script src="js/kube.min.js"></script>
<script src="kaform.js"></script>
<script src="addons/upload/kube.upload.min.js"></script>
@ -515,10 +507,4 @@ EOS;
</body>
</html>
<?php
error_log( "flush OUTPUT_BUFFER and end buffering" );
ob_end_flush();
die();
?>