Giter Site home page Giter Site logo

ecodev / newsletter Goto Github PK

View Code? Open in Web Editor NEW
25.0 25.0 26.0 4.68 MB

TYPO3 extension to send newsletter

Home Page: https://extensions.typo3.org/extension/newsletter/

PHP 40.72% HTML 0.60% JavaScript 56.74% CSS 1.94%
email newsletter typo3 typo3-extension

newsletter's People

Contributors

carodb avatar cundd avatar fabarea avatar killerdose avatar marvin-martian avatar mbrodala avatar potofcoffee avatar powerkiki avatar ronnybaumann avatar siwa-pparzer avatar stephankellermayr avatar wakoch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

newsletter's Issues

Unsafe statement written to the binary log

Just for the record

150220 17:26:28 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted. Statement: UPDATE tx_newsletter_domain_model_email SET open_time = 1424449586 WHERE open_time = 0 AND MD5(CONCAT(uid, recipient_address)) = 'b5c3ff722252b29f57e5a146eb32d71b' LIMIT 1

occurs on mysql server 5.5 and floods the errorlog, which leads to performance loss :-)

Dunno if removing the limit hurts at all

Remove deprecated use of ObjectManager::create

In line 55 of ExtDirectProviderViewHelper.php ObjectManager::create is used, but this is deprecated since Extbase 6.1.0 and will be removed in Extbase 6.3.0. Please change to ObjectManager::get().

Add different params to plaintext-emails

Sometimes you want specific content-rendering for plaintext, or the result of html2text/lynx is not optimal, therefor it should be possible to add a different param when rendering plaintext-emails.
screenshot-plaintextparams2
(i am currently working on this, just openend the thread)

GeneralUtility' not found

Fatal error: Class 'TYPO3\CMS\Frontend\ContentObject\GeneralUtility' not found in /home/xx/www/TYPO3/TYPO3_6-1/TYPO3.CMS/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php on line 5943

Fresh Typo 6.1.8-dev

Problem with "Fetch bounced emails" Scheduler Task

I have a problem with the Scheduler Task. I changed the exec command to passthru and changed the "-s" fetchmail flag to "-v" to get some more Information why the handling of bounced mails does not work.

At some point some PHP header Information is sent X-Powered-By: PHP/5.4.24 Expires: 0 Last-Modified: Sat, 08 Feb 2014 16:14:29 GMT Cache-Control: no-cache, must-revalidate Pragma: no-cache Content-Type:text/html;charset=utf-8

I guess it is the cli_dispatch.phpsh newsletter_bounce mda call.

The TYPO3 6.1.7 installation is on a 1und1 Server using

(uiserver):uxxxxxxxxxx:~ > /usr/bin/php6 -v
PHP 5.4.24 (cgi-fcgi) (built: Jan 20 2014 18:35:37)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

the cli_dispatch.phpsh generally works - the Scheduler ist also called via cli_dispatch.phpsh.
Because of the several PHP Versions 1und1 is running on that host, I changed the first line of cli_dispatch.phpsh to:
#!/usr/bin/php6 -q

here is the complete output of the fetchmail call:

fetchmail: 6.3.26 querying pop.1und1.de (protocol POP3) at Sat Feb 8 17:14:28 2014: poll started 
Trying to connect to 212.227.15.178/110...connected. 
fetchmail: POP3< +OK POP server ready H mieue108 0LxxY4-1V79dF2t4m-015ROc 
fetchmail: POP3> CAPA 
fetchmail: POP3< +OK Capability list follows 
fetchmail: POP3< TOP 
fetchmail: POP3< USER 
fetchmail: POP3< UIDL 
fetchmail: POP3< STLS 
fetchmail: POP3< SASL PLAIN 
fetchmail: POP3< IMPLEMENTATION trinity 
fetchmail: POP3< . 
fetchmail: POP3> USER [email protected] 
fetchmail: POP3< +OK password required for user "[email protected]" 
fetchmail: POP3> PASS * 
fetchmail: POP3< +OK mailbox "[email protected]" has 3 messages (336786 octets) H mieue108 
fetchmail: POP3> STAT 
fetchmail: POP3< +OK 3 336786 
fetchmail: POP3> LAST 
fetchmail: POP3< -ERR unknown command 
fetchmail: POP3> UIDL 
fetchmail: POP3< +OK 
fetchmail: POP3< 1 0LjcDo-1VfJbH1a8G-00bRKs 
fetchmail: POP3< 2 0Lviye-1V9MWz21T2-017YRP 
fetchmail: POP3< 3 0MBD3x-1W2Zdh2h6L-00AEmV 
fetchmail: POP3< . 3 messages for [email protected] at pop.1und1.de (336786 octets). 
fetchmail: POP3> LIST 1 
fetchmail: POP3< +OK 1 111327 
fetchmail: POP3> TOP 1 99999999 
fetchmail: POP3< +OK reading message [email protected]@pop.1und1.de:1 of 3 (111327 octets) #*********************.***********************************.***********************************************.********************************************************.*********************************.*****************************************.*****************************************************************.*****************************************************************************************.*******************************************************.***************************************.*****************************************.***************************************************************************.*********************************************************************************.*************************************************************************************.***************************************************************************.********************************************************************.***********************************************************************.***************************************************************.***************************************.*********************************.*******************************************************.**************************************************************************.************************************************.***************.********************.***************.*****************.****************************.*****************.*********************.**************************.*****************************.******************.****************.***************************.***************.*************.*************.**************.*************.*************.*************.*************.*************.*****************.**************.*************.****************.***************.*************.*************.*************.*************.**************.*************.*************.*************.*************.*************.*************.*************.**************.*************.*************.*************.*************.*************.*************.**************.*X-Powered-By: PHP/5.4.24 Expires: 0 Last-Modified: Sat, 08 Feb 2014 16:14:29 GMT Cache-Control: no-cache, must-revalidate Pragma: no-cache Content-Type:text/html;charset=utf-8
fetchmail: error writing message text
fetchmail: POP3> QUIT
fetchmail: POP3< ULW/FXEo9U5JsYAMoY6BWDdjt03A/gNQO/Qc1i1MFr1NFPkZ9DOdQSG7nbroNQp/zDqNlskKhcqQ
fetchmail: 6.3.26 querying pop.1und1.de (protocol POP3) at Sat Feb 8 17:14:29 2014: poll completed
fetchmail: Query status=6 (IOERR)
fetchmail: normal termination, status 6 

Thanks for any ideas!

Christian

End-user manual

A manual tailored for newsletter editors would be welcome. That would mean especially much less technical details and simpler explanations of how to send newsletter.

BUG - deleted or hidden in tx_newsletter_domain_model_newsletter

If there are rows in table tx_newsletter_domain_model_newsletter where deleted=1 or hidden=1, then the scheduler throws an error.
Maybe the selection of all newsletters that should be sent, doesn't ask for these attributes.
If I delete all entries from tx_newsletter_domain_model_newsletter where deleted=1 or hidden=1, the scheduler sends as planned.

Test mail send two times and error messages

Hi,

When sending a newsletter in test mode, the newsletter is sent two times and I have an error message saying that there's a network connection problem and those error messages when trying to see the statistics :

An error occurred while trying to call Tx_Newsletter_Controller_NewsletterController->statisticsAction()
An error occurred while trying to call Tx_Newsletter_Controller_LinkController->listAction()
An error occurred while trying to call Tx_Newsletter_Controller_EmailController->listAction()

The statistics are not displayed the first time, I had to get out of the module and get in again in order to see the statistics.

Everythings works fine with the scheduler.

Regards,
Florian

Scheduler task does not show remaining mails after first run

I tried to send a newsletter with 800 mails. The amount the mails per cycle is set to 100. After the first run of the scheduler task, the message:

[It is configured to send 100 emails per execution. There is currently an approximative total of 0 emails that needs to be sent for 0 planned newsletters.]

is not updated to 700 mails and 1 newsletter. Instead the message from above is shown.

[BUG] Scheduler Task wont work

Core: Error handler (BE): PHP Catchable Fatal Error: Argument 1 passed to Tx_Newsletter_Mailer::setNewsletter() must be an instance of Tx_Newsletter_Domain_Model_Newsletter, null given, called in /.../typo3conf/ext/newsletter/Classes/Tools.php on line 91 and defined in /.../typo3conf/ext/newsletter/Classes/Mailer.php line 87

Task just stops after scheduler site wont reload.
Newest Git Version installed on TYPO3 6.1.7

android-app for newsletter-status

how great it would be to have such a nice tool!?

it could work as follows:

  • backend-module to generate authentification-codes for backend-users which are allowed to access
  • eID to access data (XML-format)
  • android-app displays current stats for newsletters

...any ideas/suggestions?

[question] Subscription

Any idea wich subscription addon we can use with ext:newsletter to subscripe and unsubscribe inside the newsletter?

Thanks.

recipient list hard to fill

Hi
trying the newsletter I found:

web > List > select a page from tree > table: recipient list > New record

and added a new field then;

  1. separator ","
  2. CSV Field it is not clear at all (I leaved it blank). What is this? There is no help or documentation. It is a field name? It is a sub-separator for each field.
  3. LIST - I tried some options but it seems that all fails. Using:
    CSV File or CSV List
    attempting to pass a file wih this content:
    [email protected], [email protected]
    using or not the Carriage return,
    just saved a the end of the screen it ALWAYS appears this message:
    Error: Field names count (1) is not equal to values count (2)
    not depending on the number (count) of the record passed (doesn't matter how much records are found).

I do some attempt but it seems that the only way to fill with 'csv' is to:

  1. remove the separator (virgula) from field
  2. do not select anything; deselect PLAIN TEXT
  3. insert the records separated with CARRIAGE RETURN (i.e.:
    [email protected]
    [email protected]
    [email protected]

this seems to be the only way to "upload" a list of email to use for the newsletter.

Finally, If I am in wrong, please documentate as the CSV format is very amiguous (some export with with " other not...)

Could not analyse class:Ecodev\News\Controller\NewsController

I got the point. As soon ext:news and ext:newsletter is installed I get a weird namespace thing. If one of them is removed, everything is OK.

Has @georgringer an idea?

Fatal error: Uncaught exception 'TYPO3\CMS\Extbase\Object\Container\Exception\UnknownObjectException' with message 'Could not analyse class:Ecodev\News\Controller\NewsController maybe not loaded or no autoloader?' in /var/www/web23/html/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php:37 Stack trace: #0 /var/www/web23/html/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/Container.php(315): TYPO3\CMS\Extbase\Object\Container\ClassInfoFactory->buildClassInfoFromClassName('Ecodev\\News\\Con...') #1 /var/www/web23/html/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/Container.php(157): TYPO3\CMS\Extbase\Object\Container\Container->getClassInfo('Ecodev\\News\\Con...') #2 /var/www/web23/html/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/Container.php(108): TYPO3\CMS\Extbase\Object\Container\Container->getInstanceInternal('Ecodev\\News\\Con...', Array) #3 /var/www/web23/html/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/ObjectManager.php(94): TYP in /var/www/web23/html/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php on line 37

The Problem

Ecodev\News\Controller\NewsController

I doubt that Newsletter has a NewsController ... Perhaps it is a TYPO in any namespace declaration that leads to this?

Multiple Searches

with phpstorm on different namespace declaration terms, did not bring up a TYPO issue.

Versions running

  • TYPO3 6.2.10-dev 500df0ded1fec59fa5293d337fe57251fd796095
  • ext:newsletter a1491e9
  • ext:news fc90edde27b88df07875ee643c19711bd39d64b3 -> which is more or less old

Error sending: Content too short

Hi @PowerKiKi,

I'm facing a problem and I can't find why this is happening. When I want to send the news letter, in the first step, the screen say:
Erreurs
Contenu trop court. Le contenu doit être d'au moins 200 caractères pour être considéré valide.

I have done a "responsive" newsletter with fluid template: http://tcag.ch/newsletter/test-newsletter/
For my need , i generate all the html/body in the fluid template, so I have disabled the Typo3 part with:

page {
config {
# Unset the header (html/header) tag, as it's is provided by the fluid template
disableAllHeaderCode = 1
### set to 0 on live version and to 1 for development
no_cache = 1
# remove comment output
disablePrefixComment = 1
# indexed search
index_externals = 0
index_enable = 0
}
}

When I was generating the htm/header with Typo3 (not in fluid template), all was ok.
Any idea why ?
Thanx for your help !

Sylvain

Clicking links should count email as open

At the moment if you have the statistics enabled and the reciever does not accept the counter-image, the counter get not raised. Clear so far. But if this person clicks a link the counter is also not raised. This should be taken into account once.

implement feature for additional parameters in email-links (utm, etc.)

A feature for adding additional parameters to links in the email-content would be nice. In my case i need the following for tracking in Google Tag Manager: &utm_source=newsletter&utm_medium=email&utm_campaign=#uid#

I think the easiest way is to add a TS-setting in the function "getLinkAuthCode".

Passwords Bounceaccount Plaintext stored

Passwords for bounceaccount are stored in plaintext.

It should be a normal behaviour to store passwords salted.

History

1 Updated by Adrien Crivelli over 1 year ago
Comment Edit
I am not sure salted passwords is the solution here, as we need to be able to retrieve the original password. I had a look a few months ago in t3lib for some functions to do that, but I could not find out anything fitting our needs. Would you have anything specific to suggest ?

2 Updated by d.ros no-lastname-given over 1 year ago
Comment Edit
Dunno really. I had some time ago the need to implement RSA into an individual extension and made it with Portable PHP password hashing framework. -> http://www.openwall.com/phpass/

Greets

3 Updated by Adrien Crivelli over 1 year ago
Comment Edit
phpass is interesting, but again its for hashing, not encrypt/decrypt. So we can't get original password back with phpass.

I guess we'll have to look harder for something else or just come up with our own implementation...

implement accessibility-test for bounce-accounts

it would be nice to have a button, with which you can test the accessibility of a bounce-account to avoid sending newsletters with an outdated bounce-address.
this test could be useful too before queueing newsletters.

Image are not present in "show in browser"

If you choose the embedded images option and click in a newsletter on the "show in browser link" all the images are not displayed. You and up with a page without Images. Instead you have the tags like: <img rc="###_#_SWIFT_EMBEDDED_MARKER_1_#_###">

I think the substitution process of images should be disabled for this page.

unsubscribe-link in html-mail

In my template the i have <a href="###newsletter_unsubscribe_url###">unsubscribe</a>. The problem is, that this link is computed by the mail-open-spy-handler and so i get an invalid unsubscribe link with click-tracking.

Implement GUI for attachment

Attachment are available but the GUI does not exist for it. We have to edit newsletter record via TCA (list mode) which is really cumbersome.

We need to implement something more straightforward, probably in "advanced" section.

Slow sending

Hi!
I have a problem with the performance of the extension. It only sends about 200 newsletters/hour.

I'm using Typo3 6.1.5, Newsletter 2.1.1.
SMTP Server is configured. Cron Job runs every 5 min for 250 newsletters.

On the same server, Typo3 4.7.4 and Direct Mail 6.0.2, 3000 newsletter/hour are no problem.

Does anyone have an idea what might be wrong?

Thank you & Best,
Otto

Image embedding in Gmail

Do embedded images work for you with Android and IOS Gmail (Native App and Webapp)?
I have always the issue that images are shown as attachments but aren't shown in the newsletter itself - and there is no option to show them by Gmail.

Another thing: I've translated the Ext to german. Are you interested in integrating it in the Extension. Or would you like to do translation by dint of http://translation.typo3.org?

Grz
Christian

Problem with absRefPrefix

If you set config.absRefPrefix which is recommended then you get links like href="/products/". The problem is in getValidatedContent() the links will be concatenated with the baseUrl, which result in http://mydomain.de//products/.
I think it is nothing critical, but should be adjusted.

Marker substitution in link + clicked links

If you use both a field substitution in a link and the feature "detect clicked links" following happens:

Link in the newsletter template:
<a href="http://your-server/index.php?id=1&mail=###email###">unsubscribe newsletter</a>

The plugin encodes the whole href part of the link and attaches its own functions for link detecting

Link in E-Mail
http://your-server/index.php?id=1&tx_newsletter_p%5Baction%5D=clicked&tx_newsletter_p%5Bcontroller%5D=Link&type=1342671779&url=http%3A%2F%2Fyour-server%2Findex.php%3Fid%3D1%26mail%3D%23%23%23email%23%23%23&n=9&l=91a17808bc28c038e92b02257696becc

so ###email### is now %23%23%23email%23%23%23 and therefore, the plugin doesn't inserts the E-Mail Address given by the recipient

On send testnewsletter -> the object type "Tx_Newsletter_Domain_Model_Newsletter" given to update must be persisted already, but is new

Error while sending test newsletter

The object of type "Tx_Newsletter_Domain_Model_Newsletter" given to update must be persisted already, but is new.

occurs after hitting the send test newsletter button. Normal sending works as expected.

TYPO3 : 6.2.10-dev git
Newsletter: git master from today

by examining the goog* I saw that this could be caused by the propertymapper but no clue what to do :-)

& in OpenSpy-image-src replaced

In my newsletters there is a wrong image source for the openSpy. The & is converted to the html-entity "&" so the src looks like:

    <div><img src="http://domain.de/?tx_newsletter_p%5Baction%5D=opened&amp;tx_newsletter_p%5Bcontroller...

-> so the image could not be loaded.

Load balancing

Original TcDirectmail implemented load balancing to send emails. This may be re-implemented as long as SwiftMailer allow us to change the configuration on the fly.

The old code for load balancing was deleted because it was not fully supported anymore, and the new proper way to implement it would be via SwiftMailer load balancing features.

6.2 error: HP Warning: Invalid argument supplied for foreach() in /.../typo3/sysext/extbase/Classes/Validation/Validator/CollectionValidator.php line 103

Hello

Great extension, but a little less of documentation ;-).
Can you give me some help about my error? If I click on "Add to queue" I get the error:

PHP Warning: Invalid argument supplied for foreach() in /is/htdocs/wp1106888_H2WDP83R7T/www/typo3_sources/typo3_src-6.2.2/typo3/sysext/extbase/Classes/Validation/Validator/CollectionValidator.php line 103

Backtrace:

#0 /.../typo3/sysext/extbase/Classes/Validation/Validator/CollectionValidator.php(103): TYPO3\CMS\Core\Error\ErrorHandler->handleError(2, 'Invalid argumen...', '/is/htdocs/wp11...', 103, Array)
#1 .../typo3/sysext/extbase/Classes/Validation/Validator/GenericObjectValidator.php(178): TYPO3\CMS\Extbase\Validation\Validator\CollectionValidator->isValid(NULL)
#2 /.../typo3/sysext/extbase/Classes/Validation/Validator/GenericObjectValidator.php(137): TYPO3\CMS\Extbase\Validation\Validator\GenericObjectValidator->isPropertyValid(Object(Tx_Newsletter_Domain_Model_RecipientList_Sql), 'data')
#3 /.../typo3/sysext/extbase/Classes/Validation/Validator/ConjunctionValidator.php(76): TYPO3\CMS\Extbase\Validation\Validator\GenericObjectValidator->isValid(Object(Tx_Newsletter_Domain_Model_RecipientList_Sql))
#4 /.../typo3/sysext/extbase/Classes/Validation/Validator/GenericObjectValidator.php(178): TYPO3\CMS\Extbase\Validation\Validator\ConjunctionValidator->isValid(Object(Tx_Newsletter_Domain_Model_RecipientList_Sql))
#5 /.../typo3/sysext/extbase/Classes/Validation/Validator/GenericObjectValidator.php(137): TYPO3\CMS\Extbase\Validation\Validator\GenericObjectValidator->isPropertyValid(Object(Tx_Newsletter_Domain_Model_Newsletter), 'recipientList')
#6 /./typo3/sysext/extbase/Classes/Validation/Validator/ConjunctionValidator.php(76): TYPO3\CMS\Extbase\Validation\Validator\GenericObjectValidator->isValid(Object(Tx_Newsletter_Domain_Model_Newsletter))
#7 /.../typo3/sysext/extbase/Classes/Validation/Validator/ConjunctionValidator.php(76): TYPO3\CMS\Extbase\Validation\Validator\ConjunctionValidator->isValid(Object(Tx_Newsletter_Domain_Model_Newsletter))
#8 /.../typo3/sysext/extbase/Classes/Mvc/Controller/ArgumentsValidator.php(96): TYPO3\CMS\Extbase\Validation\Validator\ConjunctionValidator->isValid(Object(Tx_Newsletter_Domain_Model_Newsletter))
#9 /.../typo3/sysext/extbase/Classes/Mvc/Controller/ArgumentsValidator.php(54): TYPO3\CMS\Extbase\Mvc\Controller\ArgumentsValidator->isPropertyValid(Object(TYPO3\CMS\Extbase\Mvc\Controller\Arguments), 'newNewsletter')
#10 /.../typo3/sysext/extbase/Classes/Property/Mapper.php(121): TYPO3\CMS\Extbase\Mvc\Controller\ArgumentsValidator->isValid(Object(TYPO3\CMS\Extbase\Mvc\Controller\Arguments))
#11 /.../typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php(453): TYPO3\CMS\Extbase\Property\Mapper->mapAndValidate(Array, Array, Object(TYPO3\CMS\Extbase\Mvc\Controller\Arguments), Array, Object(TYPO3\CMS\Extbase\Mvc\Controller\ArgumentsValidator))
#12 /.../typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php(164): TYPO3\CMS\Extbase\Mvc\Controller\AbstractController->mapRequestArgumentsToControllerArguments()
#13 /.../typo3/sysext/extbase/Classes/Mvc/Dispatcher.php(83): TYPO3\CMS\Extbase\Mvc\Controller\ActionController->processRequest(Object(TYPO3\CMS\Extbase\Mvc\Web\Request), Object(Tx_Newsletter_MVC_ExtDirect_TransactionResponse))
#14 /.../typo3conf/ext/newsletter/Classes/MVC/ExtDirect/RequestHandler.php(126): TYPO3\CMS\Extbase\Mvc\Dispatcher->dispatch(Object(TYPO3\CMS\Extbase\Mvc\Web\Request), Object(Tx_Newsletter_MVC_ExtDirect_TransactionResponse))
#15 /.../typo3/sysext/extbase/Classes/Core/Bootstrap.php(209): Tx_Newsletter_MVC_ExtDirect_RequestHandler->handleRequest()
#16 /.../typo3/sysext/extbase/Classes/Core/Bootstrap.php(198): TYPO3\CMS\Extbase\Core\Bootstrap->handleRequest()
#17 /.../typo3/sysext/extbase/Classes/Core/ModuleRunner.php(81): TYPO3\CMS\Extbase\Core\Bootstrap->run('', Array)
#18 /.../typo3/mod.php(51): TYPO3\CMS\Extbase\Core\ModuleRunner->callModule('web_NewsletterT...')
#19 {main}

Tried to use tt_address data as recipient-list by SQL-statement SELECT * FROM tt_address WHERE hidden=0

Thanks in advance!
Johannes

German date_start_sending-String to long

In the send newsletter-screen, the string date_start_sending is to long: "Datum der geplanten Sendung". The Button for add_to_queue moves out of view, so you are unable to send your emails.
nosend

Btw: there is no german date

Warnings related to forbidden CSS-properties are not correct because of a typo or missing code

If your HTML contains CSS-properties like 'width', 'margin', 'height', 'padding' or 'position', a warning should be thrown.
But the warning is displayed several times and only if the property 'width' is used (somewhere inside, so 'max-width' is fetched too).

please integrate this patch:

+++ Classes/Domain/Model/Newsletter.php 2014-09-17 11:18:42.855977436 +0200
@@ -913,14 +913,18 @@

         // Positioning & element sizes in CSS
         $forbiddenCssProperties = array('width', 'margin', 'height', 'padding', 'position');
+        $forbiddenCssPropertiesWarnings = array();
         if (preg_match_all('|<[a-z]+[^>]+style="([^"]*)"|', $content, $matches)) {
             foreach ($matches[1] as $stylepart) {
                 foreach ($forbiddenCssProperties as $property) {
-                    if (strpos($stylepart, 'width') !== false) {
-                        $warnings[] = sprintf($LANG->getLL('validation_mail_contains_css_some_property'), $property);
+                    if (preg_match('/[^-]\b' . $property . '\b[^-]/', $stylepart)) {
+                        $forbiddenCssPropertiesWarnings[$property] = $property;
                     }
                 }
             }
+            foreach ($forbiddenCssPropertiesWarnings as $property) {
+                $warnings[] = sprintf($LANG->getLL('validation_mail_contains_css_some_property'), $property);
+            }
         }

         return array(

Implement feature to emergency-stop queued newsletters

if someone queued a newsletter, there should be an option to stop the sending and delete the newsletter if something terrible goes wrong.
...or at least the possibility, to stop current sending and queue a new version for the rest of the recipients.

Unsubscribe link substitution fails if in href

Problem

if ###newsletter_unsubscribe_url### is placed within a href and "identify clicked links" is active the marker doesn't get substituted and looks like this.

http://domain/?tx_newsletter_p%5Baction%5D=clicked&tx_newsletter_p%5Bcontroller%5D=Link&type=1342671779&url=http%3A%2F%2Fdomain%2Fpage%3Ftype%3D9005%26L%3D%23%23%23newsletter_unsubscribe_url%23%23%23&n=706&l=5818b872d59258663c189f997e41a3a3

if you place ###newsletter_unsubscribe_url### in body and not as a href link the correct url is generated which is also functional. But it is no link at all.

Problem with Attach images

When you set "basic.attach_images" you will get an error while sending mails.
The error looks like this:
"Unable to open file for reading [url_to_image]"
This error comes from "Classes/Mailer.php" line 190.
The reason is "Swift_EmbeddedFile::fromPath($url)" expect a filesystem path but a url is given.

I could fix it like this:
Insert on line 187
$urlPath = str_replace($this->siteUrl, '', $url);
$urlPath = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($urlPath);

and then i changed:
$this->attachmentsEmbedded[$swiftEmbeddedMarker] = Swift_EmbeddedFile::fromPath($url);
to:
$this->attachmentsEmbedded[$swiftEmbeddedMarker] = Swift_EmbeddedFile::fromPath($urlPath);

TYPO3 6.2.10
Newsletter 2.3.2

Implement re-send feature

In statistics view implement an option to resend the newsletter to an alternative email in case the email bounced (or whatever may have happened or not).

Global statistics

Improve statistics to have a better global overview of all pages sent as newsletter.

Add a toggle button "current page/all pages" on top of newsletter list, or a list of pages, or a two level tree page->newsletter with current page selected by default?

Then be able to select several newsletter and see cumulative statistics. Beware, that may be a huge amount of data.

Also this Statistics page should always be available, independently of page currently selected in TYPO3 page tree, so we will probably rework what was done for #38572 to enable/disable tabs when appropriate (with a possible tooltip to explain the situation in addition to message in Status tab).

implement feature for newsletter-categories

it would be nice if a frontend-user could register himself for specific newsletter-categories (ie. with help of "femanager" or similar frontend-user-registration, or simple included as part of the newsletter-system).

...are there any thoughts/ideas in this direction?

What about TYPO3 6.2?

Hi Fabien, do you have an estimation about how much effort it may take to get this running for TYPO3 6.2?

error: RecipientListController->listRecipientAction()

This happens if upgraded from last Version and trying to reload the reciepientlist, which is empty.

Reason

Tx_Newsletter_Domain_Model_RecipientList_Sql is not allowed in reciepientlist. Must be changed to sql manually.

Solution

Take into account within updatescript or give advice in documentation.

Re-arrange "status" tab

It has been said by customers that the tab "status" - which is displayed by default - looks a bit geeky and displays too technical information.

I would suggest to move information related to "Newsletter validity" into its own tab "Validity". Furthermore, I would add a few instructions within the tab "status" to guide the user when the newsletter has never been sent.

History

Updated by Adrien Crivelli over 1 year ago

Guiding user is a good idea, it's quite "rough" for now.

However I would not hide the validation message in another tab, because it's specifically something we wanted to expose when mocking up the GUI for this extension. Users must be aware that their newsletter is of poor quality if it's the case. So I would rather improve the current layout/messages than hide it altogether (maybe collapsing things ? or a "dumbed down" version ?). The ticket #29610 was created quite a long time ago for that and we could continue the discussion over there (splitting this ticket in two).

Updated by Fabien Udriot over 1 year ago

I have the following concerns with the tab "status":

The content is slow to render because of analyzing the output.
Information is not really relevant towards editors users because it is not their purpose and also because they can't do much (except perhaps content from RTE). It is more something targeting admin user in my eyes.
If we keep this info on the first tab, then I would go for a button or something like that which would display a report on-demand. What do you think?

Updated by Adrien Crivelli over 1 year ago
I am not 100% convinced that user, even "simple" editors, should be ignorant of the quality of their work, even if they cannot do much by themselves about that, they can at least contact for help.

The latency is a very good point though, and the on-demand validity check seems to be a good compromise for everybody. Still visible, but not too much "in the way".

Updated by Adrien Crivelli about 16 hours ago
Still an interesting idea, but not quit fit for a minor release. Postponing to an undefined version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.