[PHP] verstuurd met mail() gezien als spam

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bij een van mn sites kunnen mensen zich registreren. Om te voorkomen dat iemand een ongeldig e-mail adres opgeeft krijgen ze een automatisch gegenereerd wachtwoord via de e-mail opgestuurd. Dus pas nadat ze die e-mail hebben ontvangen kunnen ze inloggen. Nadeel is alleen dat als iemand die e-mail niet krijgt dat ze dan ook niet kunnen inloggen....

En dat is nou precies het probleem, want ongeveer 15% van de e-mails de registratie verstuurd worden komen niet aan.. Wat we nu doen is zelf achter mensen aan mailen als we merken dat ze 24 uur na registratie nog niet zijn ingelogged. Maar dat is echt geen doen, nu kan het nog net omdat we pas 850 gebruikers hebben, maar als we straks meer gebruikers hebben dan is het echt ondoenlijk om 15% van de registraties een nieuwe e-mail te sturen.

Allereerst ja, ik ga er een script voor schrijven die bovenstaande na-mailen voor mij doet.

Maar daarnaast vind ik het raar dat er zoveel e-mails niet aan komen. Moet dus eigenlijk wel door een of andere spamfilter geblokkeerd worden.

Ik heb al de nodige sites gelezen over het voorkomen van spam, en dus hoe ik de e-mail er het beste uit kan laten zien etc. Maar ik vroeg me af of jullie de nodige ervaringen hiermee hebben en hoe ik ervoor kan zorgen dat ik die 15% omlaag breng.

Ik noem ons product even 'mijnwebsite', om te voorkomen dat jullie deze post zien als spam ;)

[details]
- de website is gehost bij webstekker
- ik gebruik de mail() functie uit php
- content type is text/plain
- reply en from adres zijn support@mijnwebsite.extensie
- de tekst is een eenvoudige tekst, zie hieronder:
Beste $username,

Jouw eigen mijnwebsite pagina is aangemaakt, je wachtwoord is: $password. Als je wilt kun je dit wachtwoord wijzigen door in jouw mijnwebsite pagina op de 'Profiel wijzigen' knop bovenin de balk te klikken.

Ga naar http://$username.mijnwebsite.extensie om gebruik te gaan maken van jouw mijnwebsite pagina.

Als je nog vragen hebt dan kun je een e-mail sturen naar $hulpemailadres.


Met vriendelijke groeten,
mijnwebsite
Ik hoop dat jullie nog wat goeie tips hebben...

Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Een hele simpele vraag misschien, maar heb je al even gecontroleerd of je from-IP niet toevallig ergens geblacklist staat? :)

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 16:37

Basszje

Reisvaap!]

Dit is echt een ramp inderdaad. Ik ben er vroeger ook mee bezig geweest. Wat kan helpen is *alle* headers die een normaal mailtje stuurt ook mee te sturen. Soms is het zelfs handig om een useragent header mee te sturen die aangeeft dat je bv via Outlook of een dergelijk mailprogramma aan het mailen bent. Elke minieme afwijking van een 'normale' email kan al opgevat worden als spam tegenwoordig.

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • Wierdo_NL
  • Registratie: Mei 2000
  • Laatst online: 10-09 15:52
Misschien dit even proberen, en via deze class versturen, werkt erg lekker :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class mime_mail {
    var $parts;
    var $to;
    var $from;
    var $headers;
    var $subject;
    var $body;
    
    function mime_mail() {
        $this->parts        = array();
        $this->to               =  "";
        $this->from         =  "";
        $this->subject  =  "";
        $this->body         =  "";
        $this->headers  =  "";
    }
    
    function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
        $this->parts [] = array (
            "ctype"     => $ctype,
            "message"   => $message,
            "encode"    => $encode,
            "name"      => $name
        );
    }
    
    // (multipart)
    function build_message($part) {
        $message    = $part["message"];
        $message    = chunk_split(base64_encode($message));
        $encoding   = "base64";
        return "Content-Type: " . $part["ctype"] . ($part["name"]? "; name = \"" . $part["name"] . "\"" : "") . "\nContent-Transfer-Encoding: $encoding\n\n$message\n";
    }
    
    function build_multipart() {
        $boundary       = "b" . md5(uniqid(time()));
        $multipart  = "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
        for($i = sizeof($this->parts)-1; $i>=0; $i--) {
            $multipart  .= "\n" . $this->build_message($this->parts[$i]) . "--$boundary";
        }
        return $multipart   .=  "--\n";
    }
    
    
    function send() {
        $mime   = "";
        if (!empty($this->from)) {
            $mime .= "From: " . $this->from . "\n";
        }
        if (!empty($this->headers)) {
            $mime .= $this->headers . "\n";
        }
        if (!empty($this->body)) {
            $this->add_attachment($this->body, "", "text/html");
        }
        $mime .= "MIME-Version: 1.0\n".$this->build_multipart();
        mail($this->to, $this->subject, "", $mime);
    }
}


$attachment = fread(fopen("file.zip", "r"), filesize("file.zip")); 
$mail                       = new mime_mail();
$mail->from         = '"' . $_afzenderNaam . '" <' . $_afzenderAdres . '>';
$mail->headers  = 'Errors-To: ' . $_afzenderAdres;
$mail->to               = $_email;
$mail->subject  = $_onderwerp;
$mail->body         = $_contents;
$mail->add_attachment("$attachment", "file.zip", "Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAgEASABIAAD/7QT+UGhvdG9zaG");
$mail->send();

[ Voor 35% gewijzigd door Wierdo_NL op 03-10-2005 16:25 ]

There is a fine line between hobby and mentaldisorder


Acties:
  • 0 Henk 'm!

  • enveekaa
  • Registratie: September 2003
  • Laatst online: 21-09 06:09
Hmm, je hebt er geen HTML/plaatjes in verwerkt? wordt nogal eens gezien als spam.

Kun je eens de volledige source pasten van een mailtje dat door je script wordt verstuurd incl. headers e.d., misschien zien we daar iets aan.

Verder denk ik dat het meer een probleem is aan de kant van de ontvanger, waar jij weinig aan kunt doen. Als je mail echt verstuurd wordt en simpelweg niet aankomt door een spamfiler oid..houdt het op. De tips die ik je kan geven zijn tips die je zelf ook al aangeeft, plaintext en goede headers.

[ Voor 5% gewijzigd door enveekaa op 03-10-2005 16:28 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
"Een hele simpele vraag misschien, maar heb je al even gecontroleerd of je from-IP niet toevallig ergens geblacklist staat?"

Ik heb inderdaad op meerdere sites gekeken / gezocht in zoekmachines. Maar volgens mij zijn er vele blacklist sites. Kan je er een paar noemen waar jij zou zoeken?


En nee, er zitten geen plaatjes e.d.in.

Ik ga inderdaad eens kijken of ik een outlook headed oid kan meesturen.

Wat er in die class gebeurt is ook wat ik doe, alleen dan niet in een class, en zonder attachments (dus heb ik 3/4 van die class niet nodig). Maar iig bedankt voor de code, al heb ik m deze keer niet nodig.

Het kan idd de kant van de ontvanger zijn.. maar als ik er bij het versturen wat aan kan doen dat de ontvanger zn spamfilter m niet oppakt dat is dat natuurlijk top :)


Trouwens, enkele providers waar ie vaak niet aankomt zijn tiscali en 12move.

Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Verwijderd schreef op maandag 03 oktober 2005 @ 16:34:
"Een hele simpele vraag misschien, maar heb je al even gecontroleerd of je from-IP niet toevallig ergens geblacklist staat?"

Ik heb inderdaad op meerdere sites gekeken / gezocht in zoekmachines. Maar volgens mij zijn er vele blacklist sites. Kan je er een paar noemen waar jij zou zoeken?
Ik doe dat zelf als het nodig is met de onderstaande functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<h1>IP-adressen checken tegen DNSBL's</h1>
<?php
function is_blacklisted($ip) 
{
   $dnsbl_check=array(  "opm.blitzed.org",
                        "virbl.dnsbl.bit.nl",
                        "bl.spamcop.net",
                        "combined.njabl.org",
                        "list.dsbl.org",
                        "sbl-xbl.spamhaus.org",
                        "spam.dnsbl.sorbs.net",
                        "dnsbl.sorbs.net",
                        "blackholes.five-ten-sg.com",
                        "relays.ordb.org",
                        "dynablock.easynet.nl");
   if ($ip) {
       $quads=explode(".",$ip);
       $rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0];
       for ($i=0; $i<count($dnsbl_check); $i++) {
           if (checkdnsrr($rip.".".$dnsbl_check[$i],"A")) {
               $listed.=$dnsbl_check[$i]."<br>";
           }
         }
       if ($listed) { return $listed; } else { return FALSE; }
   }
}

// Vul hier één of meer IP's in die je wilt testen
$ip = array ("xxx.xxx.xxx.xxx", "xxx.xxx.xxx.xxx");

foreach ($ip as $k => $v)
{
    echo "<br><hr>Getest met IP: <b>" . $v . "</b><br><br>";
    if(is_blacklisted($v))
    {
        echo "<i>Blacklisted in:</i><br>" . is_blacklisted($v);
    }
    else
    {
        echo "<i>Wieeeeeeh! Nix aan de hand: we zijn niet geblacklist</i>";
    }
}
?>


Vul de array $ip met 1 of meerdere IP's die je wilt bekijken en die worden dan door 11 zeer vaak gebruikte blacklisters heen gejast. Is je IP gelist, dan krijg je te zien in welke lijst hij staat. Is er niets aan de hand, dan krijg je de melding dat er nix aan de hand is.

Plak de hele bovenstaande code in een bestandje, zet even het IP erin waarvandaan jouw server zijn mail verstuurt, upload 't naar je server en vraag het bestand op via je browser, dan kun je kijken wat er precies aan de hand is. Is het dat niet, dan zou ik me inderdaad eerst eens zorgen gaan maken over de vraag of je je headers wel keurig aflevert zoals het hoort. :)

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thanks! ik ga je script ff bekijken

[edit]
positief resultaat! het ip adres komt niet in die lijsten voor.

[ Voor 52% gewijzigd door Verwijderd op 03-10-2005 16:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

webskipper, heb je bij je DNS senderid ingesteld? (anders wordt namelijk ALLE mail naar hotmail direct in de spam folder geplaatst

Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Een hoop spamfilters vogelen uit dat de ingevulde $username voorkomt in de url die je geeft in het mailtje. Dit kan redelijk makkelijk gemarkeerd worden als een poging om te checken of dit adres 'gelezen' wordt (kunnen we het platspammen of niet) en wordt daardoor gemarkeerd als spam.

Kan je niet zeggen, "Ga naar http://www.example.com en vul de volgende bevestigingscode in", en in de help pagina (of na het invoeren van de validatie een quick start pagina) opgeven waar ze hun eigen subdomein kunnen vinden?

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

Verwijderd

wat ook van belang is: heeft de mailserver een FQDN?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Waar je ook rekening mee moet houden: zorg dat het emailadres van de afzender hetzelfde domein is als het domein waar je de email van verstuurt. Dit kan ik niet echt opmaken uit je post.

Acties:
  • 0 Henk 'm!

  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 13:44

Eijkb

Zo.

En bekijk idd eens hoeveel van die 15% een hotmail account betreft. Bij mijn projecten zijn het 99% hotmail accounts waarbij de aanmelding in "ongewenste post" verdwijnt, als je dat op de aanmeld pagina erbij vermeld is het probleem al deels opgelost (als ze dat lezen natuurlijk :D)

.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het gros van de gebruikers die de e-mail niet binnenkrijgt hebben tiscali en 12move als provider, en verder zie ik weinig hotmail langs komen.

K ga idd even kijken naar deze laatste nieuwe tips!

Acties:
  • 0 Henk 'm!

  • Wierdo_NL
  • Registratie: Mei 2000
  • Laatst online: 10-09 15:52
Tiscali is 1 grote provider geworden, met daaronder onderandere :

- Tiscali.nl zelf,
- 12move.nl,
- noknok.nl,
- wish.nl,
- wish.net
- wishmail.net,
- wanadoo.nl,
- worldonline.nl,
- tip.nl,

Deze gebruiken allemaal dezelfde 2 mailservers.
Misschien wordt je gewoon ouderwets geblockt.

En hotmail heeft gewoon een trage manier van mail verwerken, misschien als iemand weet hoe dat te omzeilen is, dan zou ik dat graag willen weten.

There is a fine line between hobby and mentaldisorder


Acties:
  • 0 Henk 'm!

  • rvtk
  • Registratie: Juni 2001
  • Laatst online: 19-09 16:06
Zoals bosmonster ook al zei "zorg dat het emailadres van de afzender hetzelfde domein is als het domein waar je de email van verstuurt". Kan je eens een header van je mailtje posten?

Het komt vaak voor dat mail gebounced wordt of als spam wordt gezien als het afzender adres niet juist is.
Pagina: 1