Domanda

Sul mio localhost (Linux Mint OS) Swiftmailer sta funzionando benissimo con il seguente codice, ma ogni volta che mi muovo fino al mio server è subito pendente presso la funzione di invio e poi mi dà un errore interno del server.

Al momento ho la mia configurazione della posta elettronica tramite Google Apps, quindi forse SMTP non funzionerà per questa situazione? Se questo è il caso, come si fa a suggerire cambio questo da SMTP.

Inoltre, ogni volta che mando una e-mail di questo tipo, si sta rivelando un dall'indirizzo di uno nella zona nome utente. Voglio che presentarsi con l'indirizzo del mittente nella funzione "setFrom".

//Include the swiftmailer class
require_once 'comm/swiftmailer/swift_required.php';

//Create a message
//Pass it as a parameter when you create the message
$message = Swift_Message::newInstance();
$message->setSubject('My Subject');
$message->setFrom(array('noreply@domain.com' => 'No Reply'));
$message->setTo(array('me@domain.com' => 'Me'));
$message->setBody($emailContent, 'text/html');

//Create transport class and email the message
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('useracctname')->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);

Grazie molto per qualsiasi aiuto!

È stato utile?

Soluzione

Questo potrebbe essere un problema porta sul server. Port 465 potrebbe essere chiuso per evitare lo spamming. Potrebbe anche essere che la versione del server di PHP manca il supporto SSL.

mi chiedo, però, potrebbe essere che non sto usando il server di posta locale in modo che non permetterà SMTP?

Se indirizzo Gmail come esplicitamente come si fa, è molto improbabile che si sta utilizzando un altro tipo di trasporto o un server diverso.

Inoltre, per quanto riguarda utilizzando uno degli altri tipi di trasporto?

Credo che SMTP è l'unica opzione per farlo funzionare con Gmail. Si potrebbe, tuttavia, essere che il server sta fornendo un servizio basato mail() (ovviamente con un indirizzo del mittente diverso da quello GMail però). In tal caso, si può essere in grado di utilizzare di Swiftmailer mail trasporto .

Altri suggerimenti

Ho avuto lo stesso problema: sono stato in grado di inviare e-mail gmail in locale (dopo l'aggiornamento che la configurazione: https://www.google.com/settings/security/lesssecureapps ), ma non in produzione.

Per risolvere il mio problema che ho connesso al mio account Gmail con la mia produzione ip / dal mio server di produzione e rispondere alla domanda di sicurezza di Gmail.

Una delle soluzioni per accedere al tuo account Gmail con il vostro ip di produzione, è quello di

  1. aprire un tunnel SSH (SSH -2NfCT -D 5000 yoursshuser@yourdomain.org)
  2. Configura si browser per utilizzare tale proxy (ad esempio Firefox: a Preferenze> Avanzate> Rete> Impostazioni> Configurazione manuale dei proxy SOCKS> Host: localhost / Post: 5000 / SOCKS V5)
  3. registro per voi account Gmail come al solito

L'errore in output da Symfony è stato:

app.ERROR: Exception occurred while flushing email queue: Failed to authenticate on SMTP server with username "joe.doe" using 1 possible authenticators [] []

bene, ecco la soluzione.

se si sta inviando posta SMTP è necessario creare account di posta elettronica sul server quindi utilizzare queste informazioni e-mail al vostro codice. il server non invierà l'email, se non si dispone di account di posta elettronica valido per inviare ad usarlo quando si utilizza "da". questo dovrebbe essere un vero corretta e-mail rappresentano un falso uno.

l'unica ragione possibile inviare utilizzando falso account sta utilizzando la funzione mail ().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top