camsti Mester
22. september 2020 - 12:31 Der er 3 kommentarer og
1 løsning

Mailform sender ikke mail hvis den indeholder æøå

Jeg meget lidt om php og  lidt om webprogrammering generelt.
Alligevel har jeg under stor morskab lavet en hjemmeside som jeg faktisk synes fungerer ret godt.
Men min mailform driller.
Hvis navnet eller selve meddelelsen indeholder æøå kommer den simpelthen ikke frem. Der kommer ingen fejlmeddelelse eller noget, mailen dukker bare aldrig op i indboksen.
Kan nogen mon hjælpe?
Jeg kan kopiere koden herind, og jeg kan også give en behjælpelig person adgang til koden hvis det er nødvendigt.

På forhånd tak for hjælpen!
arne_v Ekspert
22. september 2020 - 15:44 #1
Encoder du ÆØÅ som Quoted Printable (eller Base64)?
camsti Mester
23. september 2020 - 13:42 #2
Aner det ikke ..  Jeg troede det blev defineret i UTF charset :)

Jeg håber det er OK ellers må du sige til så sletter jeg det igen.
Jeg har kopieret koden ind her - først html og dernæst php.

Jeg håber det giver mening ...

Følgende kode er indsat i kontakt.html:
<form action="feedback.php" method="post" id="tswfbform" accept-charset="UTF-8">
                        <label for="tswname">Name</label> <input type="text" name="fullname" style="max-width: 100%;" id="tswname" size="39" /><br />&nbsp;<br />
                        <label for="tswemail">Email</label> <input type="text" style="max-width: 100%;" id="tswemail" name="email" size="39" /><br />&nbsp;<br />
                        <label for="tswtel">Telephone</label> <input type="text" id="tswtel" style="max-width: 100%;" name="tel" size="39" /><br />&nbsp;<br />
                        <label for="tswcomments">Comments</label><br />&nbsp;<br />
                        <textarea rows="15" cols="45" name="comments" style="max-width: 100%;" id="tswcomments"></textarea>
                        <br />&nbsp;<br />
                        <input id="tswsubmit" type="submit" value="Send Feedback" />
                    </form>

Følgende kode er indsat i feedback.php

// ------------- CONFIGURABLE SECTION ------------------------

$mailto = 'per@tmpm.dk' ;
$subject = "Email Feedback Form" ;
$formurl = "http://tmpm.dk/feedback.html" ;
$thankyouurl = "http://www.tmpm.dk/thankyou.html" ;
$errorurl = "http://tmpm.dk/error.html" ;
$want_tel_field = 1;
$want_addr_field = 0;

$email_is_required = 1;
$name_is_required = 1;
$comments_is_required = 1;
$uself = 0;
$use_envsender = 0;
$use_sendmailfrom = 0;
$smtp_server_win = '' ;
$use_webmaster_email_for_from = 0;


// -------------------- END OF CONFIGURABLE SECTION ---------------

define( 'MAX_LINE_LENGTH', 998 );
define( 'CONTENT_TYPE', 'Content-Type: text/plain; charset="utf-8"' );

$linesep = $uself ? "\n" : "\r\n" ;
if ($use_sendmailfrom) {
    ini_set( 'sendmail_from', $mailto );
}
if (strlen($smtp_server_win)) {
    ini_set( 'SMTP', $smtp_server_win );
}
$envsender = "-f$mailto" ;
$fullname = trim($_POST['fullname']) ;
$email = trim($_POST['email']) ;
$comments = $uself ? preg_replace( '/\r\n/', "\n", $_POST['comments'] ) : $_POST['comments'] ;
$http_referrer = $_SERVER['HTTP_REFERER'];

if (!isset($_POST['email'])) {
    header( "Location: $formurl" );
    exit ;
}
if (($email_is_required && (empty($email) || (substr_count($email,'@') != 1))) || (strlen($email) > 254) || preg_match("/[\s<>,;'\"]/", $email) ||
    ($name_is_required && empty($fullname)) || (strlen($fullname) > 729) || preg_match("/[\r\n@<>,;\"]/", $fullname) ||
    ($comments_is_required && empty($comments))) {
    header( "Location: $errorurl" );
    exit ;
}

if (empty($email)) {
    $email = $mailto ;
}
$fromemail = $use_webmaster_email_for_from ? $mailto : $email ;
if (function_exists( 'get_magic_quotes_gpc' ) && get_magic_quotes_gpc()) {
    $comments = stripslashes( $comments );
}
$opt_flds = $want_addr_field ? "Address: " . $_POST['addr'] . $linesep : '' ;
$opt_flds .= $want_tel_field ? "Telephone: " . $_POST['tel'] . $linesep : '' ;
$messageproper =
    "This message was sent from:" . $linesep .
    $http_referrer . $linesep .
    "------------------------------------------------------------" . $linesep .
    "Name of sender: $fullname" . $linesep .
    "Email of sender: $email" . $linesep .
    $opt_flds .
    "------------------------- COMMENTS -------------------------" . $linesep . $linesep .
    $comments . $linesep . $linesep .
    "------------------------------------------------------------" . $linesep ;
$messageproper = wordwrap( $messageproper, MAX_LINE_LENGTH, $linesep, true ) ;

$headers =
    "From: \"$fullname\" <$fromemail>" . $linesep . "Reply-To: \"$fullname\" <$email>" . $linesep . "X-Mailer: chfeedback.php 3.0.0" .
    $linesep . 'MIME-Version: 1.0' . $linesep . CONTENT_TYPE ;

if ($use_envsender && !ini_get('safe_mode')) {
    mail($mailto, $subject, $messageproper, $headers, $envsender );
}
else {
    mail($mailto, $subject, $messageproper, $headers );
}
header( "Location: $thankyouurl" );
exit ;

?>
arne_v Ekspert
23. september 2020 - 15:07 #3
Der er en ingen encoding i den kode.

:-)
arne_v Ekspert
23. september 2020 - 15:08 #4
Hvis du sender en header:

"Content-Transfer-Encoding: quoted-printable"

og sender header og body med ÆØÅ gennem:

function header_encode($str) {
    return '=?ISO-8859-1?Q?' . qp_encode($str) . '?=';
}
function body_encode($str) {
    return qp_encode($str, true);
}

så kommer dine mail måske frem.
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Energinet udskyder kæmpe-outsourcing til KMD med flere måneder: ""Vi er blevet klogere, og derfor rykker vi datoen"
Interview: Den store transitionen i Energinets omfattende outsourcing-aftale med KMD er udskudt i tre måneder. "Vi er blevet klogere, og derfor rykker vi datoen," siger selskabets CIO, Morten Gade Christensen. Få indblik i forløbet her.
Computerworld
TDC ruller gratis fiber ud til 5.100 danske husstande - se adresserne her
TDC går i gang med at udruller fiber til tusindvis af danske husstande i Odens, Nordsjælland og Storkøbenhavn. Se hvor TDC’s gravemaskiner kommer forbi med tilbud om gratis fiber-opkobling.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
Job & Karriere
Regner din ferie væk? Brug tiden på at søge en af disse otte stillinger, der er ledige netop nu
Det sjasker ned over hele Danmark. Du kan bruge de våde sommerdage på at søge et af disse otte job, der er ledige lige nu.
White paper
Få øjeblikkelig og brugbar sikkerhedsindsigt med SIEM i skyen
En stigende del af virksomhedens kritiske IT-infrastruktur og applikationer driftes som hybridløsninger eller leveres online som SaaS eller PaaS. Alligevel er mange sikkerhedsprodukter stadig on-premise-baserede, tunge at implementere, kræver løbende vedligehold, er svære at overskue og bliver slet ikke udnyttet effektivt – hvis de da overhovedet installeres. Men det er under hastig forandring. Gartner venter, at 80% af alle Security Information and Event Management-løsninger (SIEM) om højst fem år vil have kernefunktioner, der udelukkende leveres via skyen, og det er der gode grunde til. Cloudbaseret SIEM er mere agilt, lettere at implementere, trækker på både AI og flere datakilder, er enkle at skalere og giver et markant bedre og mere prioriteret overblik over aktuelle trusler. Læs meget mere i denne hvidbog.