Euro teken in email onderwerp wilt niet lukken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Furio Scripting

Furio Scripting

19/05/2017 12:17:12
Quote Anchor link
Beste forumleden,

Ik gebruik swiftmailer om een mail te versturen met in het onderwerp een euro teken. Helaas krijg ik nooit het europteken te zien, wel een vraagteken.. hoe los ik dit op?

Dit is mijn code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
             require_once './includes/swift-mailer/lib/swift_required.php';
                    
                        $transport = Swift_MailTransport::newInstance();
                      
                        // Create the Mailer using your created Transport
                        $mailer = Swift_Mailer::newInstance($transport);
                        Swift_Preferences::getInstance()->setCharset('utf-8');          
                      // Create a message
                        $message = Swift_Message::newInstance();
                        $template = 'test';
                    
                        $message->setContentType('text/plain; charset=UTF-8');
                    
                        $message->setBody($template, 'text/html');
                        $message->setSubject('test &euro;150! - €150,00 - ');
                    

                        $message->setFrom(array('email', 'naam'));
                        $message->setTo(array('email' => 'naam'));
                  
                        if($mailer->send($message))
                        {

                            echo 'Verzonden';
                      
                       }

?>
 
PHP hulp

PHP hulp

05/11/2024 15:47:54
 
- Ariën  -
Beheerder

- Ariën -

19/05/2017 13:22:22
Quote Anchor link
Gebruik voorafgaand deze header:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
header('Content-Type: text/html; charset=utf-8');


En zorg ervoor dat je PHP-script ook met UTF-8 encoding is opgeslagen. Als dit niet is, dan heb je inderdaad kans dat je vraagtekens zal zien.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/05/2017 15:45:47
Quote Anchor link
Wat heeft een header() te maken met de titel in een e-mailbericht?
$template zou ook de opbouw van een kloppend HTML-document moeten volgen, met overeenkomende meta-headers.

Waarschijnlijk is het bestand waarin het euro-teken staat in een andere encoding opgeslagen inderdaad.

Wat je ook zou kunnen proberen is de titel base64-encoden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$title
= '=?UTF-8?B?'.base64_encode($subject).'?=;'
?>

En als dat niet werkt zou je kunnen proberen $subject alsnog UTF-8 te encoden, maar het zou natuurlijk beter zijn als dit al het geval was:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$title
= '=?UTF-8?B?'.base64_encode(utf8_encode($subject)).'?=;'
?>

Dit werkt natuurlijk alleen als SwiftMailer verder onder water geen vertalingen uitvoert, dus dat zul je verder zelf uit moeten pluizen.

Daarnaast zou je kunnen overwegen (of simpelweg kunnen testen) hoe dit soort topics je spamrating beïnvloeden. Je zou natuurlijk altijd gewoon een simpel alternatief kunnen gebruiken, zoals het simpelweg uitschrijven van de tekst "150 euro" of wat dan ook...
 
- Ariën  -
Beheerder

- Ariën -

19/05/2017 17:30:26
Quote Anchor link
Thomas van den Heuvel op 19/05/2017 15:45:47:
Wat heeft een header() te maken met de titel in een e-mailbericht?

Niks, maar het is toch iets waarbij je UTF-8 afdwingt bij het openen van een webpagina.
Ik zou het altijd aanraden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.