Can't send a newsletter

Hi, everybody,
sorry, I cannot speak /write english well, I’ll try and I hope, somebody an help me.
I use phplist successfull abot three years, I use it each month to send one campaign to about 175 recipients. So at last on january, 15th.

but yesterday / today it dosn’t work. I did like anytime:
Header, sender, content, footer, meta. then I click on send test.
I use two adresses, one of them by the same provider / hoster (Strato), the other adress ist servved by another provider (1 & 1).
it appears mistake, not send. but no reason . (email send to . . . no suuccess)

My Strato-mail-Acount receives a mail:
Der Mailversand zum folgenden Empfänger ist endgültig gescheitert:

Letzter Fehler: 550 5.7.1
Erklärung: Refused by local policy. No SPAM please! (#441) Last-Attempt-Date: Sun, 14 Feb 2016 17:38:38 +0100 (CET)
Auszug aus dem Session-Protokoll:
… während des Auslieferungsversuches auf mo4-p06-ob.smtp.rzone.de:
DELIVER <<< 550 5.7.1 Refused by local policy. No SPAM please! (#441)
Received-From-MTA: DNS; akh-ari-nat.front Arrival-Date: Sun, 14 Feb 2016 17:38:38 +0100 (CET)
Final-Recipient: RFC822; Action: failed Status: 5.7.1 Diagnostic-Code: SMTP; 550 5.7.1 Refused by local policy. No SPAM please! (#441) Final-Log-ID: h059ccs1EGcckm3

I used until yesterday phplist 3.0.12, in the night I have upgraded to 3.2.4. MYSQL-database is 5.5.47
I looked to my settings in the config.php and config-extended.php.
There was in the smtp-area

  1. define(‘PHPMAILERHOST’, ‘smtp.strato.de’);
  2. $phpmailer_smtpuser = ‘webmaster at kg-lira.de’;
  3. $phpmailer_smtppassword = ‘**********’;
  4. define(‘PHPMAILERPORT’,465);
  5. define(“PHPMAILER_SECURE”,‘ssl’);

With this settings it runs til January 2016, but not since yesterday.

What is the reason, what can I do?
Many thanks for your help
Best regards
Rainer

Hello!

  1. the only settings that phpList can see are in the ‘config.php’ file. You will need to copy those smtp settings lines from the config-extended.php, and paste them into the config.php file.

  2. You should also make sure you have the following in the config.php file:

# select the database module to use
# anyone wanting to submit other database modules is
# very welcome!
$database_module = "mysqli.inc";

One of the recent updates required this change-over… from mysql.inc to mysqli.inc

Also, it looks like your smtp server is refusing the email, perhaps because you have not authenticated properly, or the email content (headers?) is not properly configured?

1 Like

thank you so much!
Oh yes, I forgott, only config.php is in use. But their are the same information to the smtp-Account.
I added now the row
$database_module = “mysqli.inc”;
I think, there is anything with the SMTP-Acccount.
In my settings in Thunderbird is:
Athentifizierungsmethode: verschlüsseltes Passwort

may be, that is the reason
But what have I to write in the confg.php for this setting?

And where can I configure the mail-header?
I don’t know this.
Best regards

Rainer Otte

Hi Rainer,

I am having the same problem with Strato. Until January I used the default setting with php mail() function. This worked fine. Now phplist logs to the event log success, when I send a mail, but no mails are delivered. Unfortunately I have no clue, where they get lost.

If I configure phplist to use the Strato SMTP server and SSL I get the same error message as you did. Looks like an authentication problem, but I don’t understand what is wrong.

Have you found a solution? The Strato support was no help. They suggested to upgrade the PHP version, which did not solve the problem (5.6, I can’t use 7.0 yet).

Best regards

.NO, I have no solution.
but strato sends a answer:
YES, it may be, that there is something in my newsletter, what is
blocked because their software means, it is spam . .

Der Fehler 550 5.7.1 bezieht sich nicht auf Port-Angaben, sondern bezeichnet, dass die E-Mail wg. Filtereinstellungen auf dem Mailserver nicht versandt werden konnte.

Um den Versand von unerwünschten Nachrichten einzudämmen laufen Routinen auf dem Mailserver, die Nachrichten, die als Spam klassifiziert werden, blockieren. Wir arbeiten hierbei mit renommierten Berliner Hochschulen zusammen, um die Filter-Einstellungen fortlaufend zu optimieren; leider kann es natürlich dennoch zu falsch-positiven Ergebnissen kommen. Ich bitte dafür um Ihr Verständnis. Falls der Inhalt der E-Mail Elemente (Text, URLs, Grafiken usw.) enthält, die auch in Spam-Mails häufig auftauchen, lassen Sie diese bitte testweise weg und prüfen Sie, ob der Versand erfolgen kann.

Bitte beachten Sie, dass der SMTP-Server smtp.strato.de lauten muss (Port 465 ist korrekt).

I send them the code auf my newsletter and I hope, they will answer,
what is the part, which is filtered. When I receive an answer, you will
hear from me.

Best regards
Rainer

It sounds like PHPList is functioning and sending the email to your mail server (exim??) but your hosting provider is blocking the outgoing email.

Did you setup DKIM & SPF records properly on your web host?
Can your hosting provider whitelist outgoing email from the address you send from? This would allow your addy to send email without any filtration or AV checks.

Thank you, NYChris.
Now I had a talk with the hotline from our hosting provider, Strato.
DKIM is set automatically from Strato.
SPF is set with Standard STRATO Mailserver and instead I can set
FAIL - Mailserver laut MX Eintrag der Domain/Subdomain
or
SOFTFAIL - Mailserver laut MX Eintrag der Domain/Subdomain
What havve I to change too?

It’s not in those settings. You would have to add your sending address to the outgoing mailserver whitelist or trusted sender list. This would prevent any of your outgoing email from being checked by the server (checks include: spam, virus/trojan, size, etc.
Unless you have root access to the server, you’ll probably have to call the hosting provider again.

If your server uses SpamAssassin, you might want to try disabling it in order to test if that’s what is blocking you.

Whatever the problem is, I’m becoming more confident that the problem is with the web/mail server, and not phplist.

Thank you, so I understand you: I Have to contact the administrators form the webhoster Strato. that’s the only way to get a solution. But what have I tell / write them?

Tell Strato that you want to add your sending email address to the outgoing mailservers whitelist or trusted sender list.

Thank yo so much, I have written to the hotline. now I’m waiting for response.

Hi,

I just found out, if I send text mails instead of HTML the mails are sent. Looks a lot like the spam filter is the problem as NYChris supposed.

Any reply from Strato yet?

Hello,
I tryed also, to send a newsletter as text, content only one word and deleted the footer - no sucess.

STRATO’s answer is unfruitful. they mean, the reasan is an external .maiilserver, their SMTP-server will work correct. The external mail server shall have an active mechanism, on which scoring or blacklist runs.

But there is no external server. My settings in config.php:

$database_host = ‘rdbms**.strato**.de’;
$database_name = ‘DB1440511’;
$database_user = ‘passwort’;
$database_password = ‘passwort’;
$database_module = “mysqli.inc”;
define(‘PHPMAILERHOST’, ‘smtp.strato.de’);
$phpmailer_smtpuser = ‘webmaster@kg-lira.de’;
$phpmailer_smtppassword = ‘passwort’;
define(‘PHPMAILERPORT’,465);
define(“PHPMAILER_SECURE”,‘SSL’);
$message_envelope = ‘ruecklaeufer@kg-lira.de’;
$bounce_protocol = ‘pop’;
define(‘MANUALLY_PROCESS_BOUNCES’, 1);
$bounce_mailbox_host = ‘pop3.strato.de’;
$bounce_mailbox_user = ‘ruecklaeufer@kg-lira.de’;
$bounce_mailbox_password = ‘passwort’;
$bounce_mailbox_port = “995/pop3/ssl/novalidate-cert”;
$bounce_mailbox_purge = 1;
$bounce_mailbox_purge_unprocessed = 1;
$bounce_unsubscribe_threshold = 5;
define(‘ENCRYPTION_ALGO’, ‘sha256’);
$default_system_language = “de”;

You see, all servers, from the smtp-server, pop-server till phpmailerhost ar STRATO:
Also the imap-server of the recipient is by STRATO, when I send a testmail.

So I send a new mail to STRATO.
And so I’m nearly desperately

Can you send HTML email without PHPList?

Sorry, I don’t know how to do this.
I use Mozilla Thunderbird. How is teh way, to send their a message in html?

There are a few things you could try and hopefully get some clues as to what’s happening.
Try using your personal email address.
Try non-ssl Port 25 instead of 465.

I also threw together a cool html email testing script that I’ll put here tomorrow.
Sorry, no time to post it now

These are the 2 files I use to run the PHP mail test.
It will send an email as both plain text and HTML.
To see both versions, you might need to use a plain text capable email program like Mozilla Thunderbird.
The first file is htmail.php
Edit lines 2 & 3 to use your email addresses.

<?php
$sender_addy="SENDING@EMAILADDY.COM";
$receiver_addy="RECEIVING@EMAILADDY.COM";

function StripSlashesArray($myarray){
    if (is_array($myarray)){
        foreach ($myarray AS $myindex => $myvalue) {
            $myarray[$myindex] = stripslashes($myvalue);
        }
    }
    return $myarray;
}

function GetTemplate ($file) {
    $template = Implode("",file($file));
    return $template;
}
function GetMessage($template,$vars) {
     $keys = array_keys($vars);
     foreach ($keys As $key) {
       $template = preg_replace("#---$key---#","$vars[$key]",$template);
     }
     return $template;
}

function GetTextBody($data) {
        $text_body = "This is a PHP & Plain Text Email test From:\n";
        $text_body .= "Client Name: \t\t $data[first_name] $data[last_name]\n";
        $text_body .= "Address: \t\t $data[$addy]\n";
        return $text_body;
    }

    function GetHtmlBody($data) {
        $tpl = "htmltest.tpl";
        $data = StripSlashesArray($data);
        return GetMessage(GetTemplate ($tpl),$data);
    }

    if ($_POST[register]){
        $data = $_POST;
        if (($data[first_name]) && ($data[last_name])) {
            $whole_name = "$data[first_name] $data[last_name]";
        } else {
            if ((!$data[first_name]) && (!$data[last_name])) { $whole_name = "undisclosed"; }
            if (($data[first_name]) && (!$data[last_name])) { $whole_name = "$data[first_name] Undisclosed"; }
            if ((!$data[first_name]) && ($data[last_name])) { $whole_name = "Undisclosed $data[last_name]"; }
        }

        $mail_headers = "Mime-version:1.0\r\n";
          $mail_headers .= "Content-Type: multipart/alternative;    boundary=\"PHP_Test\"\r\n";
          $mail_headers .= "Return-Path: $sender_addy";
          $mail_headers .= "\r\n";
        $mail_headers .= "This message is in Mime format. Since your mail reader does not understand this format, some or all of this message may not be legibile.";
          $mail_headers .= "\r\n";
        $mymessage = "--PHP_Test\r\n";
        $mymessage .= "Content-Type: text/plain; charset=us-ascii\r\n";
        $mymessage .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
          $mymessage .= GetTextBody($data);
        $mymessage .= "\r\n\r\n";
        $mymessage .= "--PHP_Test\n";
        $mymessage .= "Content-Type: text/html; charset=us-ascii\r\n";
        $mymessage .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
        $mymessage .= GetHtmlBody($data);
        $mymessage .= "\r\n\r\n";
        $mymessage .= "--PHP_Test--";

        $subject = "NYChris PHP HTML Email Test";
        mail($receiver_addy,$subject,$mymessage,"From: \"$whole_name\" <$sender_addy>\r\nBCC: $bcc\r\n$mail_headers");
        $message = "<h1>MESSAGE SENT</h1><br />";
}
?>

<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <title>NYChris PHP HTML Email Test</title>
</head>

<body>
    <form method="post" action="htmail.php?id=2">
        <table border="0" cellpadding="0" cellspacing="10" width="50%">
            <tr>
                <th>Please Enter Your Name</th>
            </tr>
            <tr>
                <td>FIRST NAME: </td>
                <td><input type="text" name="first_name" size="24"></td>
            </tr>
            <tr>
                <td>LAST NAME: </td>
                <td><input type="text" name="last_name" size="24"></td>
            </tr>
            <tr>
                <td>ADDRESS: </td>
                <td><input type="text" name="addy" size="24"></td>
            </tr>
            <tr>
                <td>
                    <input type="submit" name="register" value="Click to Send">
                </td>
            </tr>
        </table>
    </form>
    <?php if ($message) { echo "$message"; } ?>
</body>
</html>

The second file should be named htmltest.tpl
Upload it to the same directory.

<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <title>NYChris PHP HTML Email Test</title>
        <style>
            body { color: #FFFFFF;
                background-color: #000033;
                }
               
            h1 { color: #FFFFFF;
                font-weight: bold;
                font-size: 18px;
                }
        </style>
    </head>

    <body>
        <h1>This is a PHP & HTML Email test from <br /> ---first_name--- ---last_name--- <br /> ---addy--- </h1>
    </body>
</html>

Use your browser to go to your site /htmail.php.
Fill out the form and click the button.
Check your email and see if it sent.

Thank you, NYChris.
I tryed all you had written.
At first I tested your scripts, the htmail.php and thehtmltest.tpl - successful!
I use Mozilla Thunderbird an I received the testmail with the blue background and the inputs.

Then I edited my config.php from phplist.
I changed the smtp port from 465 to 25 and canceld the row
"define(“PHPMAILER_SECURE”,‘SSL’);"
And I changed the email-adress from the sender form webmaster@kg-lira.de to a private.

Result:
Sorry, no change.
I started e new Compaign, only text, no html.
already the test-transmission an the first page failed.
I continued until step 5 finish.
mistake! it runs without end until I stop it:

Report of processing will be sent by email
Processing message 77
Looking for subscribers
Found them: 2 to process
Processing message 78
Looking for subscribers
Found them: 3 to process
Processing message 79
Looking for subscribers
Found them: 4 to process
Sending in batches of 1000 emails
Processing batch of: 2
Processed 2 out of 2 subscribers
Processing batch of: 3
Processed 3 out of 3 subscribers
Processing batch of: 4
Processed 4 out of 4 subscribers
Script stage: 51 messages sent in 1.41 seconds (2559 msgs/hr)
8 failed (will retry later)
Finished this runLess than batch size were sent, so reloading imminentlyThis batch will be 999 emails, because in the last 30 seconds 1 emails were sent
Processing batch of: 2
Processed 2 out of 2 subscribers
and so on.

So I have no solution for my problem.

So far we’ve proven that PHP mail does work properly on your server, you tried SSL and NON-SSL, and you checked with Strato, who said these emails are not being blocked or filtered.
Now you’re reporting a different problem occurring while trying to send text only.

Did you manually install PHPList, or did you use an auto-installer (softaculous, fantastico, etc.)?
Is it possible that your installation is corrupt?

Maybe @danwaterloo has a theory?

I’m using phpList 3.2.4 for the website www.kg-lira.de, installed in February, 14th 2016.I downloaded the zip-File, unzipped and uploaded it to the Website-Folder lists.
And I have another website (sports), that is ssv-l.de. There runs phpList in version 3.0.10. This website is also hosted by Strato, and there we have the same problems, also since at the middle of february.

By the way:
When I create a Newsletter in text and not in html, I can’t send the tests. But if I continue the creating until step 5 , it runs. The text-Newsletter will be send to all recipients / listed subscribers.

When I create a Newsletter in html, write in step1 content Send a webpage, put in the URL, example www.kg-lira.de/Newsletter/Entw/Feb2016.html, go to step 5 (wihtout testing) and then clicking process queue, - the newsletter will be send to those recipients which have the setting “Send this subscriber HTML emails - 0”. and they get it in text.
But that ist not what we want! It must be possible again, to send html-newsletter.
But how?