php mail() and aruba?

3k views Asked by At

goodmorning,

sadly i have to do a website using aruba.it and i encountered a big problem, while using the mail() command to send an html mail, with some server like gmail the mail goes directly to the junk folder, i checked the headers and seems fine to me so... out of idea(and time) i'm here to ask for help XD. here under you can see the source of the mail sent with the header..

    Delivered-To: [email protected]
    Received: by 10.68.50.233 with SMTP id f9cs182962pbo;
    Wed, 26 Oct 2011 07:00:41 -0700 (PDT)
    Received: by 10.227.197.197 with SMTP id el5mr9931909wbb.26.1319637640301;
    Wed, 26 Oct 2011 07:00:40 -0700 (PDT)
    Return-Path: <[email protected]>
    Received: from smtpsmart1.aruba.it (smtpweb120.aruba.it. [62.149.158.120])
    by mx.google.com with SMTP id em13si1304523wbb.129.2011.10.26.07.00.39;
    Wed, 26 Oct 2011 07:00:40 -0700 (PDT)
    Received-SPF: pass (google.com: domain of [email protected] designates 62.149.158.120 as permitted sender) client-ip=62.149.158.120;
    Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates 62.149.158.120 as permitted sender)        [email protected]
    Received: (qmail 23053 invoked by uid 89); 26 Oct 2011 14:00:38 -0000
    Received: by simscan 1.2.0 ppid: 22702, pid: 22713, t: 1.4573s
    scanners: clamav: 0.88.4/m:40/d:1945 spam: 3.1.4
    X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on
    smtpsmart1.fe.aruba.it
    X-Spam-Level: **
    X-Spam-Status: No, score=2.0 required=6.0 tests=BAYES_50,MIME_HTML_ONLY,
    RDNS_NONE autolearn=disabled version=3.2.5
    Received: from unknown (HELO webxc25s08.ad.aruba.it) (62.149.143.48)
    by smtpsmart1.fe.aruba.it with SMTP; 26 Oct 2011 14:00:36 -0000
    Received: (qmail 29688 invoked by uid 18945188); 26 Oct 2011 14:00:36 -0000
    Date: 26 Oct 2011 14:00:36 -0000
    Message-ID: <[email protected]>
    To: [email protected]
    Subject: Registrazione somesite.com
    MIME-Version: 1.0
    Content-type: text/html; charset=iso-8859-1
    To: nreguser6 creuser6 <[email protected]>
    From: Admin <[email protected]>


  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
  <head>
   <title></title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
   Benvenuto Utente nuovo
   <a   href="http://somesite.com/registrazione/attivazione/code/XXMS8ADzT1CJqZLMgmRBYA7nP">Attiva</a>
  </body>
</html>

if you have any idea about how to resolve it i'll appreciate!!!! Thanks!

1

There are 1 answers

2
Tormy Van Cool On

ARUBA discourages to use mail() and encourage to use PHPMailer instead. However, you can use the code below adapting the parts you need, in order to test and to solve your issue.

<?php

error_reporting(E_ALL);

// Generates boundary
$mail_boundary = "=_NextPart_" . md5(uniqid(time()));

$to = "[email protected]";
$subject = "testing e-mail";
$sender = "[email protected]";


$headers = "From: $sender\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative;\n\tboundary=\"$mail_boundary\"\n";
$headers .= "X-Mailer: PHP " . phpversion();

// Messaage bodies: TXT and HTML
$text_msg = "messaggio in formato testo";
$html_msg = "<b>messaggio</b> in formato <p><a href='http://www.aruba.it'>html</a><br><img src=\"http://hosting.aruba.it/image_top/top_01.gif\" border=\"0\"></p>";

// Build up the message's body to be sent
$msg = "This is a multi-part message in MIME format.\n\n";
$msg .= "--$mail_boundary\n";
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 8bit\n\n";
$msg .= "This is a testing e-mail sent by FORPSI Webhosting user for PHP mail()function testing purposes. FORPSI";  // text format message

$msg .= "\n--$mail_boundary\n";
$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 8bit\n\n";
$msg .= "This is a testing e-mail sent by FORPSI Webhosting user for PHP mail()function testing purposes.

FORPSI";  // HTML format text

// Ending Boundary multipart/alternative
$msg .= "\n--$mail_boundary--\n";

// Return-Path setup (to be used only on windows servers)
ini_set("sendmail_from", $sender);

// Send the message, the fifth paramter set the Return-Path "-f$sender" on Linux Hosting
if (mail($to, $subject, $msg, $headers, "-f$sender")) { 
    echo "Mail sent successfully !<br><br>This is the source code used for sending the e-mail:<br><br>";
    highlight_file($_SERVER["SCRIPT_FILENAME"]);
    unlink($_SERVER["SCRIPT_FILENAME"]);
} else { 
    echo "<br><br>Mail delivery failed!";
}

?>