We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Email - skrypt


Malina
07-03-2006, 10:34
Dziękuje serdecznie za pomoc!

jaras
06-03-2006, 18:07
Kod:
0)
                                $match=TRUE;
                }
        }
        while ($ra[2]=='-');
        if ($match)
                return SM_SRV_OK;
        else
                return $res;
}

function smtpmail($server, $port, $auth, $user, $pass, $from, $to, $subject, $message, $headers = '', $linelen = 0)
{
        if (
                (trim($server)=='') ||
                ($port<1) || ($port>65535) ||
                ($auth ? ((trim($user)=='') || ($pass=='')) : FALSE) ||
                (trim($from)=='') ||
                (trim($to)=='') ||
                (trim($subject)=='') ||
                ($message==''))
        {
                return FALSE;
        }
        $from=trim($from);
        $to=trim($to);
        $subject=trim($subject);
        $message=preg_replace('/(?0)
        {
                $message .= "\r\n";
                while ($message!='')
                {
                        $msg=substr($message, 0, $linelen+2);
                        if (strpos($msg, "\r\n")===FALSE)
                        {
                                $msg=substr($message, 0, $linelen+1);
                                if (preg_match('/^(.*[^\s])[\x20]([^\s]+)$/s', $msg)>0)
                                {
                                        $msg=preg_replace('/^(.*[^\s])[\x20]([^\s]+)$/s', '\1', $msg);
                                        $adv=strlen($msg)+1;
                                }
                                elseif (preg_match('/^(.*[^\s])([\s]+)([^\s]*)$/s', $msg)>0)
                                {
                                        $msg=preg_replace('/^(.*[^\s])([\s]+)([^\s]*)$/s', '\1', $msg);
                                        $adv=strlen($msg);
                                }
                                else
                                {
                                        $msg=substr($message, 0, $linelen);
                                        $adv=$linelen;
                                }
                        }
                        else
                        {
                                $msg=substr($message, 0, strpos($msg, "\r\n"));
                                $adv=strlen($msg)+2;
                        }
                        array_push($ma, $msg);
                        $message=substr($message, $adv);
                }
        }
        else
        {
                while ($message!='')
                {
                        if (strpos($message, "\r\n")===FALSE)
                        {
                                $msg=$message;
                                $adv=strlen($msg);
                        }
                        else
                        {
                                $msg=substr($message, 0, strpos($message, "\r\n"));
                                $adv=strlen($msg)+2;
                        }
                        array_push($ma, $msg);
                        $message=substr($message, $adv);
                }
        }
        for ($i=0; $i1)
                                $headers=join("\n", $headers);
                        else
                                $headers=$headers[0];
                }
                $headers=rtrim($headers);
                $headers=preg_replace('/(?\r\n");
	if (($rep=server_reply($sock, '25'))!=SM_SRV_OK)
		return $out . $rep;
	// ........... zrobic podzial na wielu adresatow
	fputs($sock, $out='RCPT TO:<' . $to . ">\r\n");
	if (($rep=server_reply($sock, '25'))!=SM_SRV_OK)
		return $out . $rep;
	fputs($sock, $out="DATA\r\n");
	if (($rep=server_reply($sock, '354'))!=SM_SRV_OK)
		return $out . $rep;
	$out='Date: ' . date('r') . "\r\n";
	$out .= "From: $from\r\n";
	$out .= "To: $to\r\n";
	if ($cc!='')
		$out .= "Cc: $cc\r\n";
	if ($bcc!='')
		$out .= "Bcc: $bcc\r\n";
	$out .= "Subject: $subject\r\n";
	$out .= $headers;
	$out .= "\r\n";
	fputs($sock, $out);
	for ($i=0; $i

jaras
06-03-2006, 18:05
Ponieważ na 60free OVH nie ma możliwości wysyłania poczty, trzeba korzystać z zewnętrznego SMTP i przez niego wysyłać listy.

Miałem podobny problem w jednym ze skryptów na swoim koncie. No cóż - trzeba było napisać własną procedurę wysyłania e-maila przez SMTP. W kolejnym poście umieszczam jej treść, jeśli komuś byłaby ona potrzebna.

Nadmieniam, że funkcja ta jest niedokończona (np. brak obsługi nagłówków Cc: i Bcc:, choć zostają one wydzielone z reszty nagłówków), ale dla pojedynczych odbiorców działa dobrze.

Reszta wyjaśnień w komentarzach w kodzie.

Przesyłam serdeczne pozdrowienia.

Malina
04-03-2006, 11:34
Czy na 60free można uruchomić skrypt wysyłający poczte email, a dokładniej generujący nowe hasło dla użytkownika i wysyłający to hasło?
Napisany skrypt testowałem na kompie - działa, na 60free niestety nie.
Jak rozwiązać problem?