PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
mail PHP
Postitaja: mm 2016-05-06 20:23:10
Hetkel, kui kiri saata, siis kuvab, et adressaat on domeen.ee <ftpkasutaja@domeen.ee>, mis tuleks mail formi juurde lisada, et lisaks sinna kasutaja emaili, millelt saadeti?
RE: mail PHP
Postitaja: siiber 2016-05-06 21:16:15
RE: mail PHP
Postitaja: andris 2016-05-07 08:34:01
Ära kasuta mail() käsku otse, selle asemel kasuta mõnd maili saatmise teeki nagu PPHMailer või SwiftMailer.
RE: mail PHP
Postitaja: dfgdfgdfg 2016-05-09 16:10:57
TSITEERITUD:
Ära kasuta mail() käsku otse, selle asemel kasuta mõnd maili saatmise teeki nagu PPHMailer või SwiftMailer.


jep mail() töötab vaikimisi vaid windowsi otsas, nix masinatel veab su kood sind alt. hea teek on phpmailer
RE: mail PHP
Postitaja: mm 2016-05-10 02:00:04
Olen proovinud erinevaid viise, kuid tulutult. Nt thunderbird ei suuda ise tuvastata UTF 8 kirju ära, kui pole määratud õige kodeering seadetest (mujal tuvastab).

Kas mingi koodi jupp lisada mailile juurde, et tuvastaks?

Olen proovinud erinevaid, kuid alati thunderbird ei suuda ise tuvasta.
RE: mail PHP
Postitaja: ise php 2016-05-10 07:24:41
Võid üht asja proovida. Ennem mail saatmist lajatad lehele
header('Content-Type: text/html; charset=utf-8');

ja saadad nii

PHP kood:
 
function saadaMail($to$rep$peal$message){
$subject $peal
 
$random_hash md5(date('r'time())); 
//define the headers we want passed. Note that they are separated with \r\n 
$headers 'Content-type: text/html; charset=utf-8' "\r\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "From: $rep\r\nReply-To: $rep>"
//add boundary string and mime type specification 
$headers .= $random_hash
//send the email 
$mail_sent = @mail$to$subject$message$headers ); 

if(
$mail_sent){return true;} else{return false;} 

}



mul siiani nagu toiminud
RE: mail PHP
Postitaja: ise php 2016-05-10 07:25:43
PS! leht salvestad ka utf-8 vormingus
RE: mail PHP
Postitaja: asd 2016-05-10 13:59:58
esiteks võiksid näidata ka oma koodi, vastasel korral kuidas viga tuvastada....

teiseks, siin on ülilihtsustatud variant
<pre style="background:#fff;color:#000">&lt;?php
<span style="color:#3b5bb5">date_default_timezone_set</span>(<span style="color:#409b1c">'Europe/Tallinn'</span>);
<span style="color:#3b5bb5">setlocale</span> ( <span style="color:#3b5bb5">LC_ALL</span>, <span style="color:#409b1c">'et_EE.utf-8'</span> );
$charset <span style="color:#ff7800">=</span> <span style="color:#409b1c">"Content-type: text/plain; charset=utf-8"</span>;
$rn <span style="color:#ff7800">=</span> <span style="color:#409b1c">"<span style="color:#3b5bb5">\r</span><span style="color:#3b5bb5">\n</span>"</span>;

$saatjaNimi <span style="color:#ff7800">=</span> <span style="color:#409b1c">"Mari"</span>;
$saajaNimi <span style="color:#ff7800">=</span> <span style="color:#409b1c">"Jüri"</span>;
$saatjaEpost <span style="color:#ff7800">=</span> <span style="color:#409b1c">"mari@mail.com"</span>;
$saajaEpost <span style="color:#ff7800">=</span> <span style="color:#409b1c">"juri@mail.com"</span>;
$pealkiri <span style="color:#ff7800">=</span> <span style="color:#409b1c">"Tere Jüri!"</span>;
$kiri <span style="color:#ff7800">=</span> <span style="color:#409b1c">"Tule külla"</span>;

$to <span style="color:#ff7800">=</span> <span style="color:#409b1c">'=?utf-8?B?'</span><span style="color:#ff7800">.</span><span style="color:#3b5bb5">base64_encode</span>($saajaNimi)<span style="color:#ff7800">.</span><span style="color:#409b1c">'?=&lt;'</span><span style="color:#ff7800">.</span>$saajaEpost<span style="color:#ff7800">.</span><span style="color:#409b1c">'>'</span>;
$from <span style="color:#ff7800">=</span> <span style="color:#409b1c">'=?utf-8?B?'</span><span style="color:#ff7800">.</span><span style="color:#3b5bb5">base64_encode</span>($saatjaNimi)<span style="color:#ff7800">.</span><span style="color:#409b1c">'?=&lt;'</span><span style="color:#ff7800">.</span>$saatjaEpost<span style="color:#ff7800">.</span><span style="color:#409b1c">'>'</span>;
$subject <span style="color:#ff7800">=</span> <span style="color:#409b1c">'=?utf-8?B?'</span><span style="color:#ff7800">.</span><span style="color:#3b5bb5">base64_encode</span>($kiri[<span style="color:#409b1c">'mess_to_me'</span>][<span style="color:#3b5bb5">0</span>]<span style="color:#ff7800">.</span><span style="color:#409b1c">": "</span><span style="color:#ff7800">.</span>$pealkiri)<span style="color:#ff7800">.</span><span style="color:#409b1c">'?='</span>;
$headers <span style="color:#ff7800">=</span> <span style="color:#409b1c">"$charset$rn"</span>;
$headers <span style="color:#ff7800">.=</span> <span style="color:#409b1c">"Mime-Version: 1.0$rn"</span>;
$headers <span style="color:#ff7800">.=</span> <span style="color:#409b1c">"Return-path: $saatjaEpost$rn"</span>;
$headers <span style="color:#ff7800">.=</span> <span style="color:#409b1c">"From: $from$rn"</span>;
$headers <span style="color:#ff7800">.=</span> <span style="color:#409b1c">"$charset$rn"</span>;

<span style="color:#ff7800">if</span>(<span style="color:#3b5bb5">mail</span> ($to, $subject, $kiri, $headers,<span style="color:#409b1c">"-f$saatjaEpost"</span>)) {
<span style="color:#3b5bb5">echo</span> <span style="color:#ff7800">=</span> <span style="color:#409b1c">"Saadetud"</span>;
}
<span style="color:#ff7800">else</span> {
<span style="color:#3b5bb5">echo</span> <span style="color:#ff7800">=</span> <span style="color:#409b1c">"Viga!"</span>;
}
?>
</pre>
RE: mail PHP
Postitaja: asd 2016-05-10 14:03:36
esiteks võiksid näidata ka oma koodi, vastasel korral kuidas viga tuvastada....
teiseks, siin on ülilihtsustatud variant


PHP kood:
 
date_default_timezone_set
('Europe/Tallinn');
setlocale LC_ALL'et_EE.utf-8' );
$charset "Content-type: text/plain; charset=utf-8";
$rn "\r\n"

$saatjaNimi "Mari";
$saajaNimi "Jüri";
$saatjaEpost "mari@mail.com";
$saajaEpost "juri@mail.com";
$pealkiri "Tere Jüri!";
$kiri "Tule külla";

$to        =    '=?utf-8?B?'.base64_encode($saajaNimi).'?=<'.$saajaEpost.'>';
$from        =    '=?utf-8?B?'.base64_encode($saatjaNimi).'?=<'.$saatjaEpost.'>';
$subject    =     '=?utf-8?B?'.base64_encode($kiri['mess_to_me'][0].": ".$pealkiri).'?=';
$headers     =     "$charset$rn"
$headers    .=    "Mime-Version: 1.0$rn"
$headers     .=    "Return-path: $saatjaEpost$rn";
$headers    .=    "From: $from$rn";
$headers    .= "$charset$rn"
    
if(
mail ($to$subject$kiri$headers,"-f$saatjaEpost")) {
    echo = 
"Saadetud";
}
else {
    echo = 
"Viga!";
}
RE: mail PHP
Postitaja: mm 2016-05-10 15:58:56
Hetkel on midagi sellist tehtud.

function saadaKiri()
{
$kelleleS = $kellele;
$sisu = "Kellelt:".$nimi."\r\nEmail: ".$email."\r\nTel: ".$telefon."\r\n\r\nVastust soovitakse: ".$vastus." kaudu\r\n\r\nSõnum:\r\n ".$sonum."";
$pealkiriS = $pealkiri;
$kelleleTagasi = "From: $email";
mail("$kelleleS","$pealkiriS","$sisu","$kelleleTagasi");
}
RE: mail PHP
Postitaja: asd 2016-05-10 16:10:29
sinu $sisu ei sisalda vajalikke headers'id, vaata minu näidatud koodi.
ja milleks jutumärgid siin:
mail("$kelleleS","$pealkiriS","$sisu","$kelleleTagasi")?

RE: mail PHP
Postitaja: mm 2016-05-10 17:01:53
Tegin nüüd sinu koodi järgi, lisasin vajalikud asjad (mis sul olid ka), kuid Thunderbird ise ei suuda ära tuvastada.

Uurisin selle vea kohta ja paljudel on see jama thunderbirdis.

TSITEERITUD:
sinu $sisu ei sisalda vajalikke headers'id, vaata minu näidatud koodi.
ja milleks jutumärgid siin:
mail("$kelleleS","$pealkiriS","$sisu","$kelleleTagasi")?

RE: mail PHP
Postitaja: asd 2016-05-10 17:35:22
vaata, kas ühendus AB'ga (kui see on kasutusel) on ikka UTF-8?
midagi taolist
PHP kood:
 
header
("Content-Type: text/html; charset=utf-8");
//    connect DB
$dblink mysqli_connect('localhost','abtest','abcd','abtest');
    if (!
mysqli_set_charset($dblink"utf8")) {printf("Current character set: %s\n"mysqli_character_set_name($dblink));} 
    else {
printf("<br>characters set is OK: %s<br><br>%s"mysqli_character_set_name($dblink), "\r\n");}
//    connect DB end

kas setlocale on õige:
PHP kood:
 LC_ALL'et_EE.utf-8' )
?
kas panid ka
PHP kood:
 '=?utf-8?B?'.base64_encode(mingi string).'?='
?

kui kõik on nii nagu peab, siis probleeme Thunderbird'ga ei tule
RE: mail PHP
Postitaja: mm 2016-05-10 17:46:09
AB-l värk toimib. See on UTF-8.

Lisasin kõik, mida soovitasid, kuid kiri tuleb siis krüpteeritult:
=?utf-8?B?w6TDpMO2w7Y=?=
TSITEERITUD:
vaata, kas ühendus AB'ga (kui see on kasutusel) on ikka UTF-8?
midagi taolist
PHP kood:
 
header
("Content-Type: text/html; charset=utf-8");
//    connect DB
$dblink mysqli_connect('localhost','abtest','abcd','abtest');
    if (!
mysqli_set_charset($dblink"utf8")) {printf("Current character set: %s\n"mysqli_character_set_name($dblink));} 
    else {
printf("<br>characters set is OK: %s<br><br>%s"mysqli_character_set_name($dblink), "\r\n");}
//    connect DB end

kas setlocale on õige:
PHP kood:
 LC_ALL'et_EE.utf-8' )
?
kas panid ka
PHP kood:
 '=?utf-8?B?'.base64_encode(mingi string).'?='
?

kui kõik on nii nagu peab, siis probleeme Thunderbird'ga ei tule
RE: mail PHP
Postitaja: asd 2016-05-10 18:11:23
vaata, vot see kood
PHP kood:
 '=?utf-8?B?'.base64_encode($pealkiri).'?='

l'heb vaid sinna, kus on mingi string, antud juhul kas nimi või subject
kui sinu andmed on sellised

PHP kood:
 $kelleleNimi "Jüri";
$kelleleEpost "juri@mail.com";

siis maili läheb nii

PHP kood:
 $kelleleS  '=?utf-8?B?'.base64_encode($kelleleNimi).'?=<'.$kelleleEpost.'>';

kusjuures soovitan kasutada just $headers'ga varianti, sest nii on mugavam ja arusaadavam, lisaks ka muud asjad saab paika panna nagu näiteks "Mime-Version: 1.0";

ja lisaks kui kasutad $headers'ga varianti, ära unusta concatenate'i (http://php.net/manual/en/language.operators.string.php)
RE: mail PHP
Postitaja: mm 2016-05-10 18:15:28
Aitäh! Sain korda!
TSITEERITUD:
vaata, vot see kood
PHP kood:
 '=?utf-8?B?'.base64_encode($pealkiri).'?='

l'heb vaid sinna, kus on mingi string, antud juhul kas nimi või subject
kui sinu andmed on sellised

PHP kood:
 $kelleleNimi "Jüri";
$kelleleEpost "juri@mail.com";

siis maili läheb nii

PHP kood:
 $kelleleS  '=?utf-8?B?'.base64_encode($kelleleNimi).'?=<'.$kelleleEpost.'>';

kusjuures soovitan kasutada just $headers'ga varianti, sest nii on mugavam ja arusaadavam, lisaks ka muud asjad saab paika panna nagu näiteks "Mime-Version: 1.0";

ja lisaks kui kasutad $headers'ga varianti, ära unusta concatenate'i (http://php.net/manual/en/language.operators.string.php)
RE: mail PHP
Postitaja: blaa 2016-05-10 18:22:04
Kuulge, mis selle mõte siin on? Lahendame ühe probleemi ära, et siis edasi asuda kõiki teisi plain mail() probleeme lahendama?
Vahel on küll kogemusi andev ja hariv ise nullist ehitada ja probleeme lahendada, aga php mail() ei ole seda väärt.
PhpMaileri paigaldus võtab mõned minutid.
RE: mail PHP
Postitaja: asd 2016-05-10 18:38:33
kasulik on see, et inimene saaks ka aru sellest, mida teeb...
meil on niigi kõik progejad...:) aga assemblerist, php-baasteadmistest rääkimata, keegi midagi ei tea...
RE: mail PHP
Postitaja: ghk 2016-05-11 18:36:19
TSITEERITUD:
kasulik on see, et inimene saaks ka aru sellest, mida teeb...
meil on niigi kõik progejad...:) aga assemblerist, php-baasteadmistest rääkimata, keegi midagi ei tea...


no oleneb ju kuhu ta teeb. kui teeb production asja siis mail() on tõesti väga vale valik. kui oma hobiks siis võiks SMTP protokolli stringidena kokku visata ise pluss serveriga suhtluse, et asja õppida.

Minu arust küsimus pole assambleris, vaid SMTP protokollis antud juhul.
RE: mail PHP
Postitaja: asd 2016-05-11 18:49:07
nalja teed... production asja sihukeste teadmistega...
asi pole tegelikult ju assembleris, mainisin seepärast, et hiljuti kuulsin juttu, et "kui müügijuhiks ei võeta, siis lähen progejaks, mis seal ikka tarka on, igaüks saab hakkama"
vot nii

ja olen siiski veendunud, et enne roomani või isegi v'iksema loo kirjutamist tuleb vähemalt tähestik endale selgeks teha... noh see selleks.

muuseas, antud juhul, kui taolised probleemid nagu seekord, eksisteerivad just Thunderbird's, siis 100% on vead seotud:
1. maili headers'a
2. ja base64_encode'ga

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0860629081726