Verander font van een email

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan Vels

Johan Vels

09/09/2013 12:33:10
Quote Anchor link
Heb een form die een email verstuurd.

Nu is mijn vraag: Hoe verander ik het font van de email? dus niet het standaard font van de email client. Maar bijvoorbeeld dat het font Arial is in alle email clients?
 
PHP hulp

PHP hulp

17/11/2024 15:23:15
 
- Ariën  -
Beheerder

- Ariën -

09/09/2013 12:35:00
Quote Anchor link
Dan zul je een HTML-header mee moeten sturen. Dan kan je er HTML in verwerken.
Gewijzigd op 09/09/2013 12:36:51 door - Ariën -
 
Jan R

Jan R

09/09/2013 12:37:48
Quote Anchor link
http://www.w3schools.com/CSS/css_font.asp
dus <p style="font-family:arial;">uw tekst</p>

Net te laat
Gewijzigd op 09/09/2013 12:38:33 door Jan R
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/09/2013 12:52:23
Quote Anchor link
Neeeeh jan, eerst dat wat Aar zegt. En als je het helemaal goed wilt doen ga je dan eerst gebruik maken van een fatsoenlijke Mail-class zoals PHPMailer of Swiftmailer. zie ook dit topic: http://www.phphulp.nl/php/forum/topic/probleem-met-contactformulier/92107/

Daarna moet je even wat weten over het opmaken van html voor email(clients): http://net.tutsplus.com/tutorials/html-css-techniques/getting-started-with-html-emails/
 
Johan Vels

Johan Vels

09/09/2013 14:16:38
Quote Anchor link
Heb nu het volgende toegevoegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<!DOCTYPE html>
<?php
$headers
  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
?>


Maar de volgende code leest die nog steeds volledig uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
$email_message2
.= "<html><body><strong>Link: Link</strong></body></html>";
Gewijzigd op 09/09/2013 16:30:16 door Johan Vels
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/09/2013 14:19:58
Quote Anchor link
Daarom Johan. PHPMailer doet dit allemaal voor je. Kun je gelijk ook bijlages meesturen, smtp gebruiken, meerdere ontvangers opgeven en een ReplyTo opgeven zonder er over na te hoeven denken.

Hier de directe link: https://github.com/Synchro/PHPMailer/archive/master.zip
Gewijzigd op 09/09/2013 14:32:50 door Frank Nietbelangrijk
 
Jan R

Jan R

09/09/2013 14:22:33
Quote Anchor link
Frank Nietbelangrijk op 09/09/2013 12:52:23:
Neeeeh jan, eerst dat wat Aar zegt. En als je het helemaal goed wilt doen ga je dan eerst gebruik maken van een fatsoenlijke Mail-class zoals PHPMailer of Swiftmailer. zie ook dit topic: http://www.phphulp.nl/php/forum/topic/probleem-met-contactformulier/92107/

Daarna moet je even wat weten over het opmaken van html voor email(clients): http://net.tutsplus.com/tutorials/html-css-techniques/getting-started-with-html-emails/


Ik ging er wel van uit dat die al juist waren; de juiste mailheaders van santhe (http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders) staan hier zeker 50 X op de site. Start van html, head, body en terug sluiten is basis kennis dus dat leek me ook wel geweten. Sorry hoor :)
Gewijzigd op 09/09/2013 14:24:32 door Jan R
 
Eddy E

Eddy E

16/09/2013 13:59:40
Quote Anchor link
Ik ben nu ook bezig met mooie emails. Dus HTML met inline-CSS en inline-SVG (via base64).
Daar geen enkel probleem.

In mijn desktop-mail-applicatie (Opera Mail) werkt het prima.
In mijn online-mail-applicatie (Gmail.com) werkt het ook goed, alleen werkt de SVG niet.
In mijn mobiele-mail-applicatie (gmail op android 4.0.4) werkt het half: achtergrondkleuren en de SVG werken niet.

Nu is dat niet eens een probleem.
Is het mogelijk om die afbeelding dan gewoon volledig te verbergen?
Dus als SVG wel werkt: tonen.
Als het niet werkt, gewoon verbergen.

Ik heb liever niets dan een kader met de alt=""-tekst zichtbaar.
Hoe moet ik dat doen?

Toevoeging op 16/09/2013 14:04:22:

Let wel: responsive design gaat uit van schermbreedte. En dat is NIET de bedoeling!
Ik heb zoiets al wel opgenomen, maar zelfs op 2560px breed Gmail-online wil ik dan geen afbeelding zien.

Ook wil ik de afbeelding NIET als bijlage sturen!

Toevoeging op 16/09/2013 14:09:01:

Ook een PNG-bestand encoden als base64 heeft hetzelfde effect: wel in Opera Mail, niet in Gmail en/of Android.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/09/2013 14:40:27
Quote Anchor link
Ik denk dat het lastig wordt om dit goed te laten werken. Er zijn nog steeds genoeg emailclients in omloop die al 20 jaar oud zijn. de SVG's zijn net van na die tijd..

Heb je geprobeerd om de SVG's ussen <object> of <embed> tags te stoppen?
 
Eddy E

Eddy E

16/09/2013 15:50:39
Quote Anchor link
Nee, maar PNG doet het ook niet embedded.
 
Michael -

Michael -

16/09/2013 16:04:11
Quote Anchor link
Eddy E op 16/09/2013 15:50:39:
Nee, maar PNG doet het ook niet embedded.

Waarom zou je PNG niet kunnen embedden? Met PHPMailer gaat dit anders prima.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $mail->AddEmbeddedImage(__DIR__.'/plaatje.png', 'naamvanplaatje'); ?>

en in het e-mailbericht zelf plaats je hem weer als volgt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php <img src="cid:naamvanplaatje"> ?>


Ontopic: Ik zou sowieso niet gaan kloten met mail() en headers. Dit levert altijd problemen op als terecht komen in de 'spam' of niet in elke applicatie juist.
Ik zou me even verdiepen in PHPMailer en dan scheelt je dat een hoop irritaties.
Gewijzigd op 16/09/2013 16:06:45 door Michael -
 
Eddy E

Eddy E

16/09/2013 22:01:16
Quote Anchor link
Heb net PHPMailer erop gezet.
Werkt niet makkelijker, maar geeft wel andere resultaten.

Nu werkt het plaatje in Gmail (online).
Ook werkt het op Android (Gmail-app).

Echter, in Opera Mail (Desktop) wordt de niet-html-variant weergegeven, terwijl dat niet moet.
Dat ligt (denk ik) niet aan Opera Mail, want die toonde voorheen als enige WEL de HTML-mail zoals het hoort.
 
Michael -

Michael -

16/09/2013 22:05:02
Quote Anchor link
Eddy E op 16/09/2013 22:01:16:
Heb net PHPMailer erop gezet.
Werkt niet makkelijker, maar geeft wel andere resultaten.

Nu werkt het plaatje in Gmail (online).
Ook werkt het op Android (Gmail-app).

Echter, in Opera Mail (Desktop) wordt de niet-html-variant weergegeven, terwijl dat niet moet.
Dat ligt (denk ik) niet aan Opera Mail, want die toonde voorheen als enige WEL de HTML-mail zoals het hoort.

Ik ken Opera Mail niet, maar hij ondersteund wel HTML en dit staat ook aan?
Zou je anders een stukje van je script kunnen laten zien wat je tot nu toe hebt?
 
Eddy E

Eddy E

16/09/2013 22:19:44
Quote Anchor link
Opera Mail ondersteunt dit en staat aan. Voor phpmailer deed hij het namelijk wel.

Code komt morgen.

Toevoeging op 17/09/2013 17:08:01:

Ik verstuur de email via deze 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
<?php
function email($emailadres, $naam, $onderwerp, $bericht) {
    $bericht = str_replace("\t", "", $bericht);
    $bericht_htmlloos = str_replace(array("  ", "\t"), "", strip_tags(nl2br(tussen($bericht, '<article>', '</article>'))));

    require_once ('php/phpmailer/class.phpmailer.php');
    $mail = new PHPMailer(true);

    $mail -> AddAddress($emailadres, $naam);
    $mail -> SetFrom('[email protected]', 'School in de vakantie');
    $mail -> AddReplyTo('[email protected]', 'School in de vakantie');
    $mail -> Subject = $onderwerp;
    $mail -> MsgHTML($bericht);
    //$mail -> AltBody =
    $mail -> IsHTML(true);
    //$mail -> Body = $bericht;
    //$mail -> AltBody = $bericht_htmlloos;

    $mail -> AddEmbeddedImage('img/logo325.png', 'logo');
    return $mail -> Send();
}

?>


De mail komt netjes aan, dus de input (ouder_email etc) is goed.
Gewijzigd op 17/09/2013 21:26:59 door Eddy E
 
Eddy E

Eddy E

18/09/2013 10:29:16
Quote Anchor link
Mag ik nu wel bumpen?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/09/2013 13:25:58
Quote Anchor link
Hoi Eddy,

Doet Opera het ook niet met een minimale HTML content?

Verder zou ik AddEmbeddedImage als volgt gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$mail
-> MsgHTML(' ... <img src="cid:my-logo" /> ... ');

$mail -> AddEmbeddedImage('path/to/logo325.png', 'my-logo', 'logo325.png');
?>
Gewijzigd op 18/09/2013 13:29:06 door Frank Nietbelangrijk
 
Eddy E

Eddy E

18/09/2013 13:35:18
Quote Anchor link
@ Frank: minimaal zou ik moeten proberen. Maar de HTML die ik nu verstuur is nagenoeg identiek aan de mail vooraf (toen het online + android) nog niet werkte. Dus lijkt me haast niet, maar is het proberen waard.

Over je msgHTML: dat heb ik zo.
Over de AddEmbeddedImage, zal ik proberen.

Toevoeging op 18/09/2013 14:07:57:

Getest, zonder effect.
Maar op zich is hier mee te leven.
Heeft iemand hier Outlook of iPhone/iMail?

Zo ja, graag even testen op http://schoolindevakantie.nl/test.php?email=<;je-emailadres>

Ik sla je adres niet op, maar laat dan even weten hoe je hem binnenkrijgt.
Óf platte tekst.
Of met een plaatje/logo bovenaan.
 
Brainworx CC

Brainworx CC

18/09/2013 14:18:43
Quote Anchor link
Eddy is een topper! :D *offtopic*
 
Michael -

Michael -

18/09/2013 14:53:07
Quote Anchor link
Ik krijg de mail met bijlage/plaatje binnen, maar het plaatje is van een onbekend bestandstype en kan niet worden geopend/weergegeven.

Ik zal het pad even wat vollediger maken op deze manier
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$mail
->AddEmbeddedImage(__DIR__.'/img/logo325.png', 'logo');
?>
Gewijzigd op 18/09/2013 14:53:24 door Michael -
 



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.