Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

php smtp mail


Ragnar

Öne çıkan mesajlar

Ya php ile smtp mail gönderme hakkında bilgisi olan varmı örnek bi kode lazım bana kafayı yicem hotmail vs siteler mail() 'i junk olarak algılıyo smtp serverdan me@localhost diye gittğinden[signature][hline]ilk nefesimde ben senin son nefesinde sen benim kollarımda
Link to comment
Sosyal ağlarda paylaş

php.ini de değiştir me@localhost tarafını :)

Aynı zamanda php ile mail de header gönderebiliorsun yani From: ......|...... şeklinde gönderebilirsin.. Gel gelelim Hotmail gibi sistemlerin mailini Junk olarak algılamaması için, muhtemelen Reverse DNS de düzgün bir MX kayıtlı sunucu olman gerekior PHP yi yazdığın yerde.[signature][hline]>Ever heard of .cshrc?
That's a city in Bosnia. Right?
-- Discussion in comp.os.linux.misc on the intuitiveness of commands

Yeniden : http://www.ethernass.com ( .org, .net )
Link to comment
Sosyal ağlarda paylaş

sağolasın sharky ama anlamadığım nokta şu bir acc kullanıpta smpt ile mail atarsa junk gitmiyor . PHP mail() kullanarak attıklarım paso junk + header da kullanıyorum.[signature][hline]ilk nefesimde ben senin son nefesinde sen benim kollarımda
Link to comment
Sosyal ağlarda paylaş

başlıkta site adresi olduğu için olabilir. normal bir mail atıp bide öyle bi bak istersen. birde bir çok optional header var php mail de .. onlarıda ekle istersen. faydası olacaktır.

php.net te mail diye arattığınızda ilgili alakalı bir çok örnek çıkacaktır ...
Link to comment
Sosyal ağlarda paylaş

adresle alakasıyok onuda çok değiştirdim biton da header ekledim yok mime cart curt zaten kafayıda yedim bunun dışın da direk socetle smpt ye bağlanığta aut bir acc ile atan bişeyler lazım bana php.net e de göz ucuyla bi baktım ama başımda çok iş olduğunda iyice bakamadım buraya yazma nedenimde o önceden uygulamış bir arkadaş varsa diye yazmıştım. yinede yardımlarınız için sağolun :)

[Bu mesaj Ragnar tarafından 08 Ocak 2005 10:01 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

[code=php]
/***************************************************************************
* smtp.php
* -------------------
* begin : Wed May 09 2001
* copyright : (C) 2001 The phpBB Group
* email : [email protected]
*
* $Id: smtp.php,v 1.16.2.9 2003/07/18 16:34:01 acydburn Exp $
*
***************************************************************************/

/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/

define('SMTP_INCLUDED', 1);

//
// This function has been modified as provided
// by SirSir to allow multiline responses when
// using SMTP Extensions
//
function server_parse($socket, $response, $line = __LINE__)
{
while (substr($server_response, 3, 1) != ' ')
{
if (!($server_response = fgets($socket, 256)))
{
message_die(GENERAL_ERROR, "Couldn't get mail server response codes", "", $line, __FILE__);
}
}

if (!(substr($server_response, 0, 3) == $response))
{
message_die(GENERAL_ERROR, "Ran into problems sending Mail. Response: $server_response", "", $line, __FILE__);
}
}

// Replacement or substitute for PHP's mail command
function smtpmail($mail_to, $subject, $message, $headers = '')
{
global $board_config;

// Fix any bare linefeeds in the message to make it RFC821 Compliant.
$message = preg_replace("#(?
if ($headers != '')
{
if (is_array($headers))
{
if (sizeof($headers) > 1)
{
$headers = join("n", $headers);
}
else
{
$headers = $headers[0];
}
}
$headers = chop($headers);

// Make sure there are no bare linefeeds in the headers
$headers = preg_replace('#(?
// Ok this is rather confusing all things considered,
// but we have to grab bcc and cc headers and treat them differently
// Something we really didn't take into consideration originally
$header_array = explode("rn", $headers);
@reset($header_array);

$headers = '';
while(list(, $header) = each($header_array))
{
if (preg_match('#^cc:#si', $header))
{
$cc = preg_replace('#^cc:(.*)#si', '1', $header);
}
else if (preg_match('#^bcc:#si', $header))
{
$bcc = preg_replace('#^bcc:(.*)#si', '1', $header);
$header = '';
}
$headers .= ($header != '') ? $header . "rn" : '';
}

$headers = chop($headers);
$cc = explode(', ', $cc);
$bcc = explode(', ', $bcc);
}

if (trim($subject) == '')
{
message_die(GENERAL_ERROR, "No email Subject specified", "", __LINE__, __FILE__);
}

if (trim($message) == '')
{
message_die(GENERAL_ERROR, "Email message was blank", "", __LINE__, __FILE__);
}

// Ok we have error checked as much as we can to this point let's get on
// it already.
if( !$socket = fsockopen($board_config['smtp_host'], 25, $errno, $errstr, 20) )
{
message_die(GENERAL_ERROR, "Could not connect to smtp host : $errno : $errstr", "", __LINE__, __FILE__);
}

// Wait for reply
server_parse($socket, "220", __LINE__);

// Do we want to use AUTH?, send RFC2554 EHLO, else send RFC821 HELO
// This improved as provided by SirSir to accomodate
if( !empty($board_config['smtp_username']) && !empty($board_config['smtp_password']) )
{
fputs($socket, "EHLO " . $board_config['smtp_host'] . "rn");
server_parse($socket, "250", __LINE__);

fputs($socket, "AUTH LOGINrn");
server_parse($socket, "334", __LINE__);

fputs($socket, base64_encode($board_config['smtp_username']) . "rn");
server_parse($socket, "334", __LINE__);

fputs($socket, base64_encode($board_config['smtp_password']) . "rn");
server_parse($socket, "235", __LINE__);
}
else
{
fputs($socket, "HELO " . $board_config['smtp_host'] . "rn");
server_parse($socket, "250", __LINE__);
}

// From this point onward most server response codes should be 250
// Specify who the mail is from....
fputs($socket, "MAIL FROM: <" . $board_config['board_email'] . ">rn");
server_parse($socket, "250", __LINE__);

// Specify each user to send to and build to header.
$to_header = '';

// Add an additional bit of error checking to the To field.
$mail_to = (trim($mail_to) == '') ? 'Undisclosed-recipients:;' : trim($mail_to);
if (preg_match('#[^ ]+@[^ ]+#', $mail_to))
{
fputs($socket, "RCPT TO: <$mail_to>rn");
server_parse($socket, "250", __LINE__);
}

// Ok now do the CC and BCC fields...
@reset($bcc);
while(list(, $bcc_address) = each($bcc))
{
// Add an addition
Link to comment
Sosyal ağlarda paylaş

ne bu neyin eklentisi ? biton kontrol var ve bütün değişkenleri session dan alıyo + bide smtp socet connect yapıyor bu , bana direk smtp connection yapan bir yapı lazım. yukardakini çalıştırana kadar daha iyi birşeyler bulabilirm gibi geliyor . neyse kendim bi araştırıyım işlerimi azalttım :) yinde sağolasın[signature][hline]ilk nefesimde ben senin son nefesinde sen benim kollarımda
Link to comment
Sosyal ağlarda paylaş

öncelikle rn olarak gözüken şeylerin hepsi rn.. Gerçi ters slash çıkacak mı forumlarda merak etmekteyim tabii..

smtp connect ile, smtp portuna acılmış bir socket bağlantısının hiçbir farkı yok. smtp connect diye bir komut var mı onu bile bilmiyorum, gel gelelim php.ini den smtp sunucusu ayarlanabilir.

Fakat, maillerinizin junk olmasının sebebi yüksek ihtimalle smtp veya local bir mta üzerinden mail göndermeniz değil, mail attığınız sunucunun reverse olarak mx kayıtlarının valid olup olmamasıdır..

Arthur'un gösterdiği script, sadece daha low level bir bağlantı şekli o kadar. Kalıpçı olmayın bu kadar, program yazıyorsunuz.[signature][hline]>Ever heard of .cshrc?
That's a city in Bosnia. Right?
-- Discussion in comp.os.linux.misc on the intuitiveness of commands

Yeniden : http://www.ethernass.com ( .org, .net )
Link to comment
Sosyal ağlarda paylaş

socet conn derken fp yi demiştim ben post methodu kastettim

create mail object diye bir prosedür olduğunu duymuştum onu kastediyorum smpt diye :) bu prosedürde misal db ye bağlanır gibi ( smtpconn(host,user,pass) ) bağlanıp mail leri direk insert ediliyormuş

+ dediğim mx kayıt içinde 6 faklı hostta denedim ve 2 tanesi çok ciddi host firmakları. + php yi çalıştırdığım mail server üstünde ben kendi hesabım ile gönderdiğimde (webmail) junk olmuyor. yanlış anlamadıysam mx kaydı olmayan bir mail serverın butun maillerinin junk gitmesi anlamına gelmiyorumu ?[signature][hline]ilk nefesimde ben senin son nefesinde sen benim kollarımda
Link to comment
Sosyal ağlarda paylaş

If you can't use or don't understand how to use the sendmail program from linux, you can use a PEAR object to send mail.

include("Mail.php");

$recipients = "[email protected]";

$headers[From] = "[email protected]";
$headers[To] = "[email protected]";
$headers[Subject] = "Test message";

$body = "TEST MESSAGE!!!";

$params[host] = "smtp.server";
$params[port] = "25";
$params[auth] = true;
$params[username] = "user";
$params[password] = "password";

// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory("smtp", $params);

$mail_object->send($recipients, $headers, $body);
?>

In my case, i use a smtp server that require authentication, and sendmail configuration is almost cryptic to me.

PEAR is already installed in PHP 4.0.3 , if not, you must go to pear.php.net and install it, in my case, I needed to add the Socket.php to the PEAR library.

off ice dallandı budaklandı :)

[Bu mesaj Ragnar tarafından 08 Ocak 2005 14:48 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

ohhh oldu sonunda naptımıda anlatıyımda

önce pear dan net_smtp ve net_socket i download ettim ve makinam da pear ı install ettim ve mail.php diye bir dosya geldi
sonra da

include("Mail.php");

$recipients = "[email protected]";

$headers[From] = "[email protected]";
$headers[To] = "[email protected]";
$headers[Subject] = "Test message";

$body = "TEST MESSAGE!!!";

$params[host] = "smtp.server";
$params[port] = "25";
$params[auth] = true;
$params[username] = "user";
$params[password] = "password";

// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory("smtp", $params);

$mail_object->send($recipients, $headers, $body);
?>

bu code ile çalıştırdım artık maillerim junk değil ve bu class sayesinde php host ettiğm yerde mail server olması zorunluluğu ortadan kalktı. herkese teşekkur ediyorum :)

[Bu mesaj Ragnar tarafından 08 Ocak 2005 15:08 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

×
  • Yeni Oluştur...