• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pytania do Swift Mailer

Object Storage Arubacloud
0 głosów
817 wizyt
pytanie zadane 28 lutego 2016 w PHP przez mowmiheniek Stary wyjadacz (11,900 p.)
Witam,

Chcę zrobić formularz wysyłający maile ze strony. Parę razy na tym forum pojawiło się stwierdzenie, że Swift Mailer jest lepszy od funkcji php mail. Podobno poczta wysłana za pomocą funkcji mail trafia automatycznie do kosza.

Zacząłem czytać manuala i przeglądać tutoriale.

Chciałem się upewnić czy przy używaniu Swift Mailer muszę w pliku php podać moje dane konta pocztowego np. gmaila? To wygląda tak jakbym sam do siebie wysyłał maile. Mail pojawia się w skrzynce wysłane i odebrane.

Dobrze to rozumiem?

Dziękuje.

4 odpowiedzi

0 głosów
odpowiedź 5 marca 2016 przez mowmiheniek Stary wyjadacz (11,900 p.)
 
Najlepsza

@ Arkadiusz Waluk, @ efik

Rozwiązanie localhost, może komuś pomoże:

Po długich walkach z tym problemem i przesiadce na PHPMailera (w którym też nie mogłem wysłać poczty), wreszcie wymyśliłem. Po wyłączeniu sprawdzania SSL i obniżeniu zabezpieczeń googla, poczta wychodziła.

$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

No ale pomyślałem, że wyłączenie zabezpieczeń to nie za dobry pomysł i brnąłem dalej.

Avast, cholerstwo, nawet po wyłączeniu go robił problemy. Należało wyłączyć ochronę poczty w której jest skanowanie SSL. 

Teraz poczta z localhosta ładnie wychodzi. 

Następny problem to wysyłka z web serwera - Bład serwera 500. Ale to zabawa na następny temat.

Pozdrawiam

+1 głos
odpowiedź 28 lutego 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

Podobno poczta wysłana za pomocą funkcji mail trafia automatycznie do kosza.

Nie koniecznie że od razu do kosza, przeważnie (przynajmniej w moim przypadku) wszystko dochodziło normalnie. Ale faktem jest, że mail() bywa problematyczne, trzeba ręcznie wpisywać nagłówki, jest mało wygodne itd. Dlatego lepiej skorzystać właśnie z PHPMailera lub SwiftMailera.

I tak, musisz podać dane do połączenia z serwerem poczty, może to być więc właśnie email i hasło do konta Gmail. Nie wysyłasz sam do siebie tylko po prostu wysyłasz z danego serwera, mail zostanie wysłany normalnie na podany email. 

komentarz 3 marca 2016 przez mowmiheniek Stary wyjadacz (11,900 p.)
Powyżej zamieściłem problem z Swift Mailer, masz dla mnie jakąś radę?

Dzięki.
+1 głos
odpowiedź 29 lutego 2016 przez efiku Szeryf (75,160 p.)

Tak. Oraz adres serwera smtp. Gmail w ustawieniach Twojej poczty ma taką opcje oraz dane:)

Dlatego właśnie najlepiej jest założyć pocztę specjalnie pod to co Tworzysz. Wtedy maile które będziesz wysyłać za pomocą Swifta będą właśnie wysyłane z konta tego "firmowego" maila.

Zobacz tutaj: http://swiftmailer.org/docs/sending.html

To duże prawdopodobieństwo, że wpadnie do kosza za pomocą mail(), bo możesz zapomnieć o jakiś istotnych nagłówkach. Zobacz jakie wysyła Swift.. Plus jest taki, że jest to dobrze zaprojektowany kod, intuicyjny a także dostępny z Composera;)

 

komentarz 3 marca 2016 przez mowmiheniek Stary wyjadacz (11,900 p.)
Powyżej zamieściłem problem z Swift Mailer, masz dla mnie jakąś radę?

Dzięki.
komentarz 3 marca 2016 przez efiku Szeryf (75,160 p.)

Sprawdź czy będzie działać z portem 587.

http://swiftmailer.org/docs/sending.html#encrypted-smtp

komentarz 3 marca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

Jeśli port 587 to nie wiem czy jeszcze nie trzeba będzie zmienić ssl na tls, tak by przynajmniej wynikało z tego co podaje Google: https://support.google.com/a/answer/176600

Prawdopodobnie dostaniesz też na swoją skrzynkę informację o tym, że próbujesz logować się z nieznanego urządzenia (no i mail się nie wyśle). Gdzieś w ustawieniach konta można wyłączyć dostęp dla niby "mniej bezpiecznych aplikacji" (jakoś tak się to nazywa) i dopiero wtedy przejdzie, ale to jak mówię na maila powinna Ci przyjść informacja.

komentarz 3 marca 2016 przez efiku Szeryf (75,160 p.)

Cyt. z docsów symfony:

If your Gmail account uses 2-Step-Verification, you must generate an App password and use it as the value of the mailer_password parameter. You must also ensure that you allow less secure apps to access your Gmail account.

See the Swiftmailer configuration reference for more details.

komentarz 3 marca 2016 przez mowmiheniek Stary wyjadacz (11,900 p.)
Niestety nie pomaga. Próbuję też z kontem na wp, też nie działa. :/
0 głosów
odpowiedź 3 marca 2016 przez mowmiheniek Stary wyjadacz (11,900 p.)

Próbuję używać tego Swift Mailera, ale mam problem :( Przy wysyłaniu pojawia się taki komunikat:

Fatal error: Uncaught Swift_TransportException: Connection could not be established with host smtp.gmail.com [ #0] in F:\xampp2\htdocs\test\lib\classes\Swift\Transport\StreamBuffer.php:265 Stack trace: #0 F:\xampp2\htdocs\test\lib\classes\Swift\Transport\StreamBuffer.php(62): Swift_Transport_StreamBuffer->_establishSocketConnection() #1 F:\xampp2\htdocs\test\lib\classes\Swift\Transport\AbstractSmtpTransport.php(113): Swift_Transport_StreamBuffer->initialize(Array) #2 F:\xampp2\htdocs\test\lib\classes\Swift\Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start() #3 F:\xampp2\htdocs\test\mail.php(27): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in F:\xampp2\htdocs\test\lib\classes\Swift\Transport\StreamBuffer.php on line 265

 

Próbowałem na localhostcie i na web serwerze. Czytałem SatckOverflow, zmieniałem  adres stmp.gmail.com na numer ip, zmieniałem porty i rodzaj szyfrowania. W pliku php.ini mam prawidłowo: extension=php_openssl.dll.

Mój kod:

<?php
require_once "lib/swift_required.php";

// grap post data
    $name =filter_var($_POST['name'], FILTER_SANITIZE_STRING);
    $mail =filter_var($_POST['mail'], FILTER_SANITIZE_EMAIL);
    $message =filter_var($_POST['message'], FILTER_SANITIZE_STRING);

// body message
    $body = "Name:" . $name . "<br />" . "Email:" . $mail . "<br />" . "Message:" . $message;

// create the transport
    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
        ->setUsername('adres@gmail.com')
        ->setPassword('haslo');


// create the mailer
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Web Lead')
    ->setFrom (array('adres@gmail.com' => 'Web Leads from This is Where'))
    ->setTo (array('adres@gmail.com' => 'Lead recipients'))
    ->setSubject ('Web Lead from XYZ')
    ->setBody ($body, 'text/html');

// send the message
$result = $mailer->send($message);

 

Hasło i adres oczywiście mam prawidłowy.

Nie wiem co jest grane. Dziękuje. 

komentarz 26 października 2018 przez Pepek91 Nowicjusz (100 p.)
Cześć,

podbijam, spotkałem sięz podobnym problemem. Znalazłeś wyjście?

Podobne pytania

0 głosów
2 odpowiedzi 516 wizyt
0 głosów
1 odpowiedź 136 wizyt
pytanie zadane 18 kwietnia 2020 w PHP przez Hubert Użytkownik (600 p.)
0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 28 maja 2019 w PHP przez manager96 Bywalec (2,050 p.)

92,624 zapytań

141,478 odpowiedzi

319,822 komentarzy

62,005 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...