jmueller17 / Aixada

Aixada helps self-managed consumption cooperatives to organize their flow of products, money, and information.
Other
33 stars 37 forks source link

Email SMTP not working, hosting Pangea #258

Closed dmanubens-zz closed 4 years ago

dmanubens-zz commented 5 years ago

Moving my installation from 000webhost to Pangea, I realise that the only feature not working is email. Not surprising given sysadm may have different policies. I have contacted support. Meanwhile I report here, in case anyone can help with their experiences @jorix ?

My config is:

 public $email_SMTP_host = 'smtp.gmail.com';       // Set to use a SMTP server. 
  //                                              // Use SMTP_host='debug' to don't send and dump messages to /local_config/debug_mail/ 
  public $email_SMTP_port = 465;               // Default = 25
  public $email_SMTP_user = 'lagranerasantpedor@gmail.com'; // Default = $admin_email (is recommend to not set, so use default as $admin_email)
  public $email_SMTP_pswd = 'xxxxxxxxxx';      // If is not set or null SMTP_user/SMTP_pswd are not used.
  public $email_SMTP_encryption = ssl;        // Valid values: 'ssl', 'tls', null. Default = null
  public $email_SMTP_verifyCert = true;        // Valid values: true, false. Used if SMTP_encryption is set.
  //                                              // NOTE: Some host use self-generated certificates. In this case the certificate
  //                                              //       verification fails and the sending of messages ends in error.
  //                                              //       So in this case set SMTP_verifyCert=false 

and the error:

Screenshot from 2019-03-28 19-08-52

jorix commented 5 years ago

public $email_SMTP_user = 'lagranerasantpedor@gmail.com';

Teneis contratado gmail para usar SMTP?

public $email_SMTP_encryption = ssl;

debería ser public $email_SMTP_encryption = 'ssl';

situplastik commented 5 years ago

the same configuration worked before in 000webhost? We (@jorix & I) implemented the $email_SMTP configuration with swiftmailer. 99% sure that the problem is with some configuration on the new server if the old server work like a charm...

Here you have the system requeriments of SwiftMailer in order to check with your new provider if the server are well configurated:

https://swiftmailer.symfony.com/docs/introduction.html#system-requirements

(Note that in theory you must use PHP >=7 but for instance we run the aixada on PHP 5).

I hope it helps in something.

jorix commented 5 years ago

we run the aixada on PHP 5

I testet Aixada php/external/swiftmailer-5.x with PHP7.3 and PHP5.5

dmanubens-zz commented 5 years ago

@situplastik we use exact same settings, thanks for the info i'll check with them

@jorix

public $email_SMTP_user = 'lagranerasantpedor@gmail.com';

Teneis contratado gmail para usar SMTP?

no, es una cuenta gratuita, pero he seguido un tutorial, este o similar https://www.hostinger.es/tutoriales/como-usar-el-servidor-smtp-gmail-gratuito/ para permitir aplicaciones no seguras

public $email_SMTP_encryption = ssl;

debería ser public $email_SMTP_encryption = 'ssl';

cambiado pero, sigue fallando con el code 220

dmanubens-zz commented 5 years ago

em diuen això, creieu que pot funcionar?

Proveu amb desconfigurar els settings del correu. En aquest cas segurament farà servir el "mail()" per defecte del PHP, que tenim configurat per a que sigui funcional.

situplastik commented 5 years ago

Aixada portava anteriorment el sistema mail(), amb la actualizació vam permetre configurar o mail() o swiftmailer. Si la memòria no em falla, @jorix va configurar que si es comentaven les linies referents a la configuració SMTP agafava l'anterior. Osigui, comentant les 6 linies que mostres al teu primer missatge del arxiu de configuració

Relacionat amb això, tot i que no crec que sigui el cas, al arxiu de configuració també hi havia la variable $internet_connection. Per enviar emails ha d'estar amb true

jorix commented 5 years ago

Segurament funcionarà, el problema pot ser que alguns destinataris qualifiquin els vostres correus de SPAM. Jo no soc de sistemes, això em deien alguns amic q remenen servidors corporatius. En el nostre cas el mateix hosting va tallar la sortida per sospita de SPAM.

Comenteu els parametres de SMTP i Aixada fara servir mail() de PHP

El dj., 28 març 2019 20.51, Domingo Manubens Gil notifications@github.com va escriure:

em diuen això, creieu que pot funcionar?

Proveu amb desconfigurar els settings del correu. En aquest cas segurament farà servir el "mail()" per defecte del PHP, que tenim configurat per a que sigui funcional.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jmueller17/Aixada/issues/258#issuecomment-477746413, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDGDn876F_9UgCwsyI5KMfYwJlO2ypNks5vbR1YgaJpZM4cQzhX .

dmanubens-zz commented 5 years ago

He provat i funciona amb mail(), si veiem que tenim problemes amb l spam ja demanaré swiftmailer als administradors de Pangea. Gràcies per la vostra ajuda!!!

dmanubens-zz commented 5 years ago

Hola relacionat amb això, hem vist que els mails amb la millora que vau fer s'envien amb còpia a les uf responsable de proveïdor. Amb mail() això no passa, sabeu si és que no és possible? Gràcies!

jorix commented 5 years ago

... Amb mail() això no passa, sabeu si és que no és possible?

Ups!, és un error meu al PR #214
Proveu el commit: ce2f91f2474324bf275f37312777bfe9b87520f3

Confirmeu si amb el commit us funciona, gràcies

dmanubens-zz commented 5 years ago

Funciona! moltes gràcies

davidromani commented 3 years ago

Perdoneu, però necessito ajuda relacionada amb el mateix tema. Si em permeteu, us escric en aquest mateix fil de conversa.

Tinc el codi font instal·lat a l'últim commit 1cef39d disponible actualment. I a la configuració que tinc a local_config/config.php és:

public $email_SMTP_host = 'smtp.gmail.com';
public $email_SMTP_port = 587;
public $email_SMTP_user = 'lavianda.roquetes@gmail.com';
public $email_SMTP_pswd = '······';
public $email_SMTP_encryption = 'tls';
public $email_SMTP_verifyCert = true;

Però quan s'envia el missatge al productor amb la comanda realitzada em retorna el missatge d'error "Unable to connect with TLS encryption". Què haig de fer per solucionar-ho?

situplastik commented 3 years ago

@davidromani veig que feu servir un gmail. Has revisat que el tingueu configurat per poder-se connectar per SMTP? El gmail "de sèrie" no permet connexions externes (ja sigui imap, pop3 o smtp) per vincular-ho a un gestor de correu tipus Outlook o Thunderbird. Aixada fa servir aquest mateix sistema per enviar els correus.

davidromani commented 3 years ago

@situplastik gràcies per respondre! Sí, dintre de les propietats del compte de Gmail tinc habilitades les connexions amb aplicacions menys segures. Entenc que amb això ja seria suficient, o falta modificar alguna propietat més?

Screenshot_2021-04-06 Compte de Google

situplastik commented 3 years ago

Fa temps que no m'hi he trobat, però google va canviant la manera pel que no t'ho puc confirmar. Diria que amb això que has fet ja hauria de funcionar pel que:

  1. prova de canviar el port i el tipus de xifrat. Per descartar problemes amb Aixada, et diria que provis amb un outlook o thunderbird i un cop trobada la configuració adient doncs la traspasses a Aixada. Aixi descartes errors mateixos del servidor (per exemple que tinguin tancat l'accés per cUrl a servidor externs, o bloquejades les IP de google).
  2. Prova el que comenten en aquest link
davidromani commented 3 years ago

@situplastik d'acord, he configurat un Thunderbird "per defecte" i funciona correctament. He modificat les propietats del servidor SMTP per tal de que siguin el més paregudes possibles a Aixada i amb Thunderbird puc enviar.

Thunderbird SMTP config:

server: smtp.gmail.com
port: 465
seguretat: ssl/tls
autenticació: contrasenya normal

Amb el Thunderbird no puc escollir entre SSL o TLS, l'opció contempla les dues modalitats alhora. Continuaré provant amb la configuració a Aixada entre SSL o TLS a veure si l'encertem..

davidromani commented 3 years ago

Doncs no ho hem aconseguit amb cap de les combinacions. El problema ens ha aparegut des de que hem actualitzat el nostre servidor a la versió de PHP 7.2 juntament amb la última versió del codi font d'Aixada.

No sé, potser hi ha algun problema amb la versió de Swiftmailer que esteu usant, o similar... de moment, hem canviat a un altre servidor SMTP diferent de Gmail (per sortir del pas).

situplastik commented 3 years ago

Utilitzant el port 465 l'ideal seria fer servir SSL (no STARTTLS). Aquí un link de fa un any on explica els passos a fer tant al compte del gmail (que ja heu fet) com la configuració a posar al swiftmailer. Exactament, la configuració que diu és:

$transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;

el host que heu provat és diferent, que no sigui això... tot i que a la majoria de cerques per internet posen el host que ja heu provat.

En el cas que funcioni amb el thunderbird però no amb aixada, el problema podria ser per software (codi aixada) o hardware (pangea). Per diseminar el problema seria mirar d'instal·lar la versió de codi que teniu en una versió local ja sigui amb docker o directament, simulant la versió PHP 7.

Ara que s'està adaptant el sistema sencer a aquest entorn seria una bona millora, independentment de si és el culpable. Nose si hi ha molts canvis o seria fàcil... Fa 3 anys que vaig deixar la cooperativa de consum on feiem servir l'Aixada, pel que estic una mica desconnectat de tot plegat.

davidromani commented 3 years ago

Gràcies pel teu temps @situplastik

Nosaltres tenim l'Aixada instal·lat a un servidor (LAMP) propi amb una versió de PHP 7.2 típica sobre MySQL 8 i Apache 2.4. Els mòduls de PHP que tenim són els habituals i no hem aplicat cap canvi substancial als valors de configuració estandar.

Per tant, crec que descartaria un problema de hardware, a mi em sembla més aviat un tema d'actualitzar les versions de llibreries (com Swiftmailer) que usa Aixada. El pas a PHP 7 implica que el codi font de les dependències també estigui preparat.

Al mateix servidor tenim altres aplicacions amb PHP 7 que fan us de Swiftmailer per enviar correus (a través de Gmail també) i funcionen correctament.

situplastik commented 3 years ago

Les altres aplicacions que teniu treballant en el mateix servidor que fan servir PHP 7 i Swiftmailer, quina és la versió d'aquest? Si van amb la 6 i funcionen, efectivament pujant la versió de SwiftMailer a 6 d'aixada segurament quedaria resold (si es fa un PR amb el canvi seria genial).

davidromani commented 3 years ago

Exacte, concretament tenim la versió de Swiftmailer 6.1.3