summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Dörre <felix@dogcraft.de>2015-07-21 22:25:15 +0200
committerFelix Dörre <felix@dogcraft.de>2015-07-21 22:25:19 +0200
commit3bfd196d673ccdba2b60321da8a2666eb1d3b83d (patch)
tree59995de64c92756a5e4dfbe5fd19bbdfa59cb34b
parent345eb2e771f6475e243f406fe37c41933a520c11 (diff)
downloadcacert-devel-3bfd196d673ccdba2b60321da8a2666eb1d3b83d.tar.gz
cacert-devel-3bfd196d673ccdba2b60321da8a2666eb1d3b83d.tar.xz
cacert-devel-3bfd196d673ccdba2b60321da8a2666eb1d3b83d.zip
bug 1389: send all mails correct in quoted-prinable
caller should now send plain utf-8 or html-encoded
-rw-r--r--includes/mysql.php.sample26
1 files changed, 19 insertions, 7 deletions
diff --git a/includes/mysql.php.sample b/includes/mysql.php.sample
index 10185fc..01570df 100644
--- a/includes/mysql.php.sample
+++ b/includes/mysql.php.sample
@@ -26,7 +26,7 @@
$_SESSION['_config']['securehostname'] = "secure.cacert.org";
$_SESSION['_config']['tverify'] = "tverify.cacert.org";
- function sendmail($to, $subject, $message, $from, $replyto = "", $toname = "", $fromname = "", $errorsto = "returns@cacert.org", $extra="")
+ function sendmail($to, $subject, $message, $from, $replyto = "", $toname = "", $fromname = "", $errorsto = "returns@cacert.org", $use_utf8 = true)
{
$lines = explode("\n", $message);
$message = "";
@@ -49,7 +49,7 @@
$smtp = fsockopen("localhost", 25);
if(!$smtp)
{
- echo("Could not connect to mailserver at localhost:25\n");
+ echo("Could not connect to mailserver at localhost:25\n");
return;
}
$InputBuffer = fgets($smtp, 1024);
@@ -86,16 +86,28 @@
if($extra == "")
{
fputs($smtp, "Content-Type: text/plain; charset=\"utf-8\"\r\n");
- fputs($smtp, "Content-Transfer-Encoding: 8bit\r\n");
- } else {
+ }
+ else
+ {
fputs($smtp, "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n");
- fputs($smtp, "Content-Transfer-Encoding: quoted-printable\r\n");
- fputs($smtp, "Content-Disposition: inline\r\n");
}
+ fputs($smtp, "Content-Transfer-Encoding: quoted-printable\r\n");
+ fputs($smtp, "Content-Disposition: inline\r\n");
+
// fputs($smtp, "Content-Transfer-Encoding: BASE64\r\n");
fputs($smtp, "\r\n");
// fputs($smtp, chunk_split(base64_encode(recode("html..utf-8", $message)))."\r\n.\r\n");
- fputs($smtp, recode("html..utf-8", $message)."\r\n.\r\n");
+ $encoded_lines = explode( "\n", str_replace("\r", "", $message) );
+ array_walk( $encoded_lines,
+ function (&$a) {
+ $a = quoted_printable_encode(recode("html..utf-8", $a));
+ });
+ $encoded_message = implode("\n", $encoded_lines);
+
+ $encoded_message = str_replace("\r.", "\r=2E", $encoded_message);
+ $encoded_message = str_replace("\n.", "\n=2E", $encoded_message);
+ fputs($smtp, $encoded_message);
+ fputs($smtp, "\r\n.\r\n");
fputs($smtp, "QUIT\n");
$InputBuffer = fgets($smtp, 1024);
fclose($smtp);