envoie d'email avec PHP et SMTP !, email automatiques...

moilui68

Membre confirmé
25 Avril 2003
41
1
Bonjour, j'ai déja essayé plusieurs fois de poster des messages concernant ce sujet... l'envoie d'email avec PHP... Je n'ai pour le moment jamais trouvé de solution... Je retente en formulant différemment ma question :

--> Je m'occupe du site d'une agence de com. qui tourne en local sur leur réseau (Serveur G4 733Mhz, MacOS X.3.9, Apache2, PHP4.3, MySQL, PERL...)
Une partie du site comporte l'envoie automatique d'email(s) (cette partie est composée de pages en PHP)... hélas cette partie ne fonctionne pas correctement car je n'arrive pas à envoyer de façon fiable les emails (les mails arrivent parfois dans le SPAM et même des fois n'arrivent pas du tout !) !

J'ai un nom de domaine gérés par hrnet pour le site du type www.azerty.fr et les emails qui vont avec du type [email protected] ; [email protected]...
Ces adresses emails fonctionnent très bien installées sur des logiciels de messagerie du type Entourage ou Mail !
--> J'aimerais savoir si il était possible depuis mes pages PHP (avec la fonction mail() ou autre chose) d'envoyer des emails avec ces adresses, c'est à dire que le destinataire ai le même résultat d'envoie du mail que si c'était envoyé avec un logiciel de messagerie classic (en utilisant le SMTP d'hrnet) !

Merci beaucoup... @+++
 
Voici ce que propose phpBB 2 pour l'envoi en nombre de mail à partir des bases d'un forum.

Bloc de code:
// This function was originally a part of the phpBB Group forum software phpBB2 (http://www.phpbb.com).
// They deserve all the credit for writing it. I made small modifications for it to suit PunBB and it's coding standards.

function server_parse($socket, $expected_response)
{
    $server_response = '';
    while (substr($server_response, 3, 1) != ' ')
    {
        if (!($server_response = fgets($socket, 256)))
            error('N\'a pas pu obtenir les codes de réponse du serveur mail. Veuillez contacter l\'administrateur de forum', __FILE__, __LINE__);
    }

    if (!(substr($server_response, 0, 3) == $expected_response))
        error('Impossible d\'envoyer l\'e-mail. Veuillez contacter l\'administrateur des forums avec le message d\'erreur suivant rapporté par le serveur SMTP : "'.$server_response.'"', __FILE__, __LINE__);
}

// This function was originally a part of the phpBB Group forum software phpBB2 (http://www.phpbb.com).
// They deserve all the credit for writing it. I made small modifications for it to suit PunBB and it's coding standards.

function smtp_mail($to, $subject, $message, $headers = '')
{
    global $pun_config;

    $recipients = explode(',', $to);

    // Are we using port 25 or a custom port?
    if (strpos($pun_config['o_smtp_host'], ':') !== false)
        list($smtp_host, $smtp_port) = explode(':', $pun_config['o_smtp_host']);
    else
    {
        $smtp_host = $pun_config['o_smtp_host'];
        $smtp_port = 25;
    }

    if (!($socket = fsockopen($smtp_host, $smtp_port, $errno, $errstr, 15)))
        error('Impossible de joindre l\'hôte SMTP "'.$pun_config['o_smtp_host'].'" ('.$errno.') ('.$errstr.')', __FILE__, __LINE__);

    server_parse($socket, '220');

    if ($pun_config['o_smtp_user'] != '' && $pun_config['o_smtp_pass'] != '')
    {
        fwrite($socket, 'EHLO '.$smtp_host."\r\n");
        server_parse($socket, '250');

        fwrite($socket, 'AUTH LOGIN'."\r\n");
        server_parse($socket, '334');

        fwrite($socket, base64_encode($pun_config['o_smtp_user'])."\r\n");
        server_parse($socket, '334');

        fwrite($socket, base64_encode($pun_config['o_smtp_pass'])."\r\n");
        server_parse($socket, '235');
    }
    else
    {
        fwrite($socket, 'HELO '.$smtp_host."\r\n");
        server_parse($socket, '250');

    }

    fwrite($socket, 'MAIL FROM: <'.$pun_config['o_webmaster_email'].'>'."\r\n");
    server_parse($socket, '250');

    $to_header = 'To: ';

    @reset($recipients);
    while (list(, $email) = @each($recipients))
    {
        fwrite($socket, 'RCPT TO: <'.$email.'>'."\r\n");
        server_parse($socket, '250');
        $to_header .= '<'.$email.'>, ';
    }

    fwrite($socket, 'DATA'."\r\n");
    server_parse($socket, '354');

    fwrite($socket, 'Subject: '.$subject."\r\n".$to_header."\r\n".$headers."\r\n\r\n".$message."\r\n");

    fwrite($socket, '.'."\r\n");
    server_parse($socket, '250');

    fwrite($socket, 'QUIT'."\r\n");
    fclose($socket);

    return true;
}
 
moilui68 a dit:
Bonjour, j'ai déja essayé plusieurs fois de poster des messages concernant ce sujet... l'envoie d'email avec PHP... Je n'ai pour le moment jamais trouvé de solution... Je retente en formulant différemment ma question :

--> Je m'occupe du site d'une agence de com. qui tourne en local sur leur réseau (Serveur G4 733Mhz, MacOS X.3.9, Apache2, PHP4.3, MySQL, PERL...)
Une partie du site comporte l'envoie automatique d'email(s) (cette partie est composée de pages en PHP)... hélas cette partie ne fonctionne pas correctement car je n'arrive pas à envoyer de façon fiable les emails (les mails arrivent parfois dans le SPAM et même des fois n'arrivent pas du tout !) !

J'ai un nom de domaine gérés par hrnet pour le site du type www.azerty.fr et les emails qui vont avec du type [email protected] ; [email protected]...
Ces adresses emails fonctionnent très bien installées sur des logiciels de messagerie du type Entourage ou Mail !
--> J'aimerais savoir si il était possible depuis mes pages PHP (avec la fonction mail() ou autre chose) d'envoyer des emails avec ces adresses, c'est à dire que le destinataire ai le même résultat d'envoie du mail que si c'était envoyé avec un logiciel de messagerie classic (en utilisant le SMTP d'hrnet) !

Merci beaucoup... @+++
fait appel à un professionnel (avec un pro ça tourne comme une Horloge sans soucis en 2 2):D


le code au dessus n'a rien avoir avec le faite
que ton serveur smtp soit rejeté

de plus il existe PEAR:MAIL pour ça

:zen: