Kezdőoldal » Számítástechnika » Programozás » PHP levélküldő UTF-8 kódolásba...

PHP levélküldő UTF-8 kódolásban, hogyan? PHP mail () nem hajlandó UTF-8 levelet küldeni.

Figyelt kérdés

<?php

header("Content-Type: text/html; charset=utf-8"); -> már írtam de nem támogat...

?>


<?php

$mailto = 'valami@valami.hu' ;

$subject = "tárgy" ;

$formurl = " [link] ;

$errorurl = " [link] ;


$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;

$use_utf8 = 1;

$my_recaptcha_private_key = '' ;


define( 'MAX_LINE_LENGTH', 998 );

$headersep = (!isset( $uself ) || !$uself) ? "\r\n" : "\n" ;

$content_type = (!isset( $use_utf8 ) || ($use_utf8 == 0)) ? 'Content-Type: text/plain; charset="iso-8859-2"' : 'Content-Type: text/plain; charset="utf-8"' ;

if (!isset( $use_envsender )) { $use_envsender = 0 ; }

if (isset( $use_sendmailfrom ) && $use_sendmailfrom) {

ini_set( 'sendmail_from', $mailto );

}

if (isset( $smtp_server_win ) && strlen($smtp_server_win)) {

ini_set( 'SMTP', $smtp_server_win );

}

$envsender = "-f$mailto" ;

$fullname = (isset($_POST['fullname']))? $_POST['fullname'] : $_POST['name'] ;

$email = $_POST['email'] ;

$comments = $_POST['comments'] ;

$http_referrer = getenv( "HTTP_REFERER" );


$envsender = iconv("ISO-8859-2", "UTF-8", $envsender);

$email = iconv("ISO-8859-2", "UTF-8", $email);

$fullname = iconv("ISO-8859-2", "UTF-8", $fullname);

$comments = iconv("ISO-8859-2", "UTF-8", $comments);


if (!isset($_POST['email'])) {

header( "Location: $formurl" );

exit ;

}

if (($email_is_required && (empty($email) || !preg_match('/@/', $email))) || ($name_is_required && empty($fullname)) || ($comments_is_required && empty($comments))) {

header( "Location: $errorurl" );

exit ;

}

if (preg_match( "/[\r\n]/", $fullname ) || preg_match( "/[\r\n]/", $email ) ) {

header( "Location: $errorurl" );

exit ;

}

if (strlen( $my_recaptcha_private_key )) {

require_once( 'recaptchalib.php' );

$resp = recaptcha_check_answer ( $my_recaptcha_private_key, $_SERVER['REMOTE_ADDR'], $_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field'] );

if (!$resp->is_valid) {

header( "Location: $errorurl" );

exit ;

}

}

if (empty($email)) {

$email = $mailto ;

}

$fromemail = (!isset( $use_webmaster_email_for_from ) || ($use_webmaster_email_for_from == 0)) ? $email : $mailto ;


if (function_exists( 'get_magic_quotes_gpc' ) && get_magic_quotes_gpc()) {

$comments = stripslashes( $comments );

}


$messageproper =

//"This message was sent from:\n" .

//"$http_referrer\n" .

//"------\n" .

"Név: $fullname\n" .

"Email: $email\n" .

"Üzenet: \n" .

wordwrap( $comments, MAX_LINE_LENGTH, "\n", true ) .

"\n" ;


$headers =

"From: \"$fullname\" <$fromemail>" . $headersep . "Reply-To: \"$fullname\" <$email>" . $headersep . "X-Mailer: chfeedback.php 2.16.1" .

$headersep . 'MIME-Version: 1.0' . $headersep . $content_type ;


if ($use_envsender) {

mail($mailto, $subject, $messageproper, $headers, $envsender );

}

else {

mail($mailto, $subject, $messageproper, $headers );

}


$theResults = <<<EOD

<html>

<head>

<title>Üzeneted elküldve! Köszönjük!</title>

<meta http-equiv="refresh" content="3;URL= [link] >

<style type="text/css">

<!--

body {

background-color: #444;

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 20px;

font-style: normal;

line-height: normal;

font-weight: normal;

color: #fec001;

text-decoration: none;

width: 800px;

}

-->

</style>

</head>

<div>Üzeneted elküldve! Köszönjük!</div>

</div>

</body>

</html>

EOD;

echo "$theResults";

?>


------------------------------------------------------------------------------------------------------------


Megkaptam a levelet. Eredmény:


Fejléc - > Minta Éva - tárgy /"Ă" az baj mert nincs étkezés/

Nv: Minta Éva /nincs "é" betű/

Email: minta@gmail.com

zenet: /nincs "Ü" betű/

Próba. Teszt.


------------------------------------------------------------------------------------------------------------


Mi a teendő? Tudná segíteni?



2014. dec. 28. 21:47
 1/5 Drone007 ***** válasza:

1. legközelebb használd a pastebin-t szintaxis megmutatására

2. használj phpmailert. egyszerűbb, biztonságosabb, sokkal többet tud.

[link]

Az utf-8 formátumú levél küldést ennyivel éred el:

$mail->CharSet = "UTF-8";

2014. dec. 28. 22:59
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Köszi a választ. Mi az Pastebin? PHPMaleir és cPanel kapcsolat?
2014. dec. 29. 01:03
 3/5 A kérdező kommentje:

$mail->CharSet = "UTF-8"; ez már próbáltam és nem támogat...

Ha PHPMailer nélkül is müködik?

2014. dec. 29. 14:06
 4/5 A kérdező kommentje:
Megkaptam a levelet, pl. freemail, valami hülyeség szimbólum és hiány magánhangzó. Tudná segíteni?
2014. dec. 29. 14:08
 5/5 Drone007 ***** válasza:

pastebin.com

bemásolod a kódot, kiválasztod a szintaxis tipust (pl PHP), kiválasztod meddig "éljen" a kód, és hogy legyen publikus. Adsz neki egy nevet, Submit-olod, és a címsorban megjelenő url-t közzéteszed itt.


A phpmailernek és a cpanelnek nincs sok köze egymáshoz. Miért is lenne? Az előbbi egy mailer oszátly, az utóbbi pedig egy szerver adminiszrátor felület.


A kód amit írtam, csak phpmailer használatával működik.

A link amit adtam megmutatja hogyan kell használni. Töltsd le az osztályt tartalmazó fájlt, integráld a rendszeredbe email küldés előtt, és használd a példa szerint.

2014. dec. 29. 22:56
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!