[PHP] Re: Send mail using external server

2003-07-14 Thread Pete Morganic
http://phpmailer.sourceforge.net/

This is what I use and makes life much much easier

Pete

Maria Garcia Suarez wrote:
Hi there!

I'm developing a program that has a kind of mail
client from where users can send mails and get a blind
copy in their e-mail boxes. The program uses mail() in
those servers having a SMTP installed in the very same
server. I would like to let people send mails even if
the server is not able to handle them.
To do that I've googled around and found the following
script (see below). The problem is that blind copies
don't reach destination, mails in the To: field arrive
well, mails in the BCC: desappear and never reach the
mailbox (nor get back :-?
Does anyone know what's going wrong? Thanks.

?
/*
pipemail v.0.1
PHP-script to send mails via socket, e.g. using
an external smtp-server
(c) Robert Strouhal 2002
http://www.strouhal.de
Feel free to use, copy and modify this script.
PLEASE REMIND: IT COMES WITH ABSOLUTELY NO GUARANTEE!
How to use:
---
Integrate the file to your own sripts by using
require or inlude
Modify the setting in line 30-32
gosmtp($from,$to,$subject,$cc,$bcc,$message);
Example: gostmtp([EMAIL PROTECTED],
[EMAIL PROTECTED],
This is my subject, ,, This is my message to
you);
*/
// settings, please modify for your own website
global $server, $port, $logsmtp;
$server = $mailServer;   //domain of your
smtp-server
$port = 25;//SMTP-Port, usually 25
$logsmtp = 1;  //set 1 if the smtp
communication should be logged to the file smtp.log in
the same folder
// don't edit the code below as long as you don't know
what to do...
function listen2server() {

global $log;
  global $server;
  global $socket;
  global $logsmtp;
  $antwort = fgets($socket, 1500);

  if ($logsmtp=='1') {
  $log = SERVER: .$antwort;
$datei = fopen(smtp.log, a);
fputs($datei, $log);
fclose($datei);
  }
  $code = substr($antwort, 0, 3);
  return $code;
}

function talk2server($commands) {
  
	global $log;
  global $server;
  global $socket;
  global $logsmtp;

  fputs($socket,$commands);

  if ($logsmtp=='1') {
$log = CLIENT: .$commands;
$datei = fopen(smtp.log, a);
fputs($datei, $log);
fclose($datei);
  }
}
function gosmtp($from,$to,$subject,$cc,$bcc,$message)
{
global $server;
global $socket;
global $port;
global $logsmtp;

if ($socket = fsockopen($server,$port))
{
//set_socket_timeout($socket, 30);
if (listen2server() == 220)
talk2server(HELO .getenv('HTTP_HOST').\n);
if (listen2server() == 250)
   talk2server(MAIL FROM: .$from.\n);
   if (listen2server() == 250)
  talk2server(RCPT TO: .$to.\n);
  if (listen2server() == 250)
talk2server(DATA\n);
 if (listen2server() == 354)
{
$content  = Subject: $subject\r\n;
$content .= From: $from\r\n;
$content .= To: $to\r\n;
if ($cc!=) {
$content .= Cc: $cc\r\n;
}
if ($bcc!=) {
$content .= Bcc: $bcc\r\n;
}
$content .= Reply-To: $from\r\n;
$content .= Errors-To:
$from\r\n;
$content .= Bounce-To:
$from\r\n;
$content .= X-Mailer: sent via
PipeMail v0.1, check www.strouhal.de for the PHP
script\r\n;
$content .= X-Please_remind: I am
not responsible for the misuse (spam...) of this
script!\r\n;
$content .=
\r\n.$message.\r\n;
$content .= .\r\n;
echo PRE$content/PRE;
talk2server($content);
if (listen2server() == 250)
{//listen2server();
 $mailsent = true;}
else
{$mailsent = false;
//listen2server();
}
	   }
	   talk2server(QUIT\n);
	   listen2server();

	  if ($mailsent) {
  echo PMail sent/P;
	return true;
} else {
  echo ttfont color='red'Couldn't deliver
mail to $to!/b/font/ttbr\n;
  return false;
}
}

else
{
echo ttfont color='red'Wasn't able to connect to
$server:$port!/b/font/ttbr;
return false;
}
}
?

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[PHP] Re: Send mail using external server

2003-07-14 Thread Manuel Lemos
Hello,

On 07/14/2003 11:27 AM, Maria Garcia Suarez wrote:
Hi there!

I'm developing a program that has a kind of mail
client from where users can send mails and get a blind
copy in their e-mail boxes. The program uses mail() in
those servers having a SMTP installed in the very same
server. I would like to let people send mails even if
the server is not able to handle them.
To do that I've googled around and found the following
script (see below). The problem is that blind copies
don't reach destination, mails in the To: field arrive
well, mails in the BCC: desappear and never reach the
mailbox (nor get back :-?
Does anyone know what's going wrong? Thanks.
That script has lots of problems from wrong line endings to the 
inability to handle multiline SMTP responses.

You may want to use this SMTP class instead:

http://www.phpclasses.org/smtpclass

Actually, if you want to use a direct replacement for the mail() 
function you may want to try this other class in conjunction as it comes 
with a wrapper function named smtp_mail() that emulates the mail() 
function but lets you send it via SMTP directly.

http://www.phpclasses.org/mimemessage

--

Regards,
Manuel Lemos
Free ready to use OOP components written in PHP
http://www.phpclasses.org/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php