_ 5.1 Epost-sändning utan bifogade filer Uppgiften belyser hur man sänder epost från ett HTML-formulär. __ Uppgift Använd följande [HTML-dokument, 05_ass/ip2/5/5.1/example.html] med ett formulär för att göra ett webbserversidesprogram som möjliggör sändning av epost från en webbläsare. Användaren ska kunna skriva in följande: - §Från§ - §Till§ - §Cc§ - §Bcc§ - §Ärende§ - §Meddelande§ När användaren har sänt brevet så ska användaren informeras om det. I slutet på alla meddelanden ska även följande information finnas: § Observera! Detta meddelande är sänt från ett formulär på Internet och avsändaren kan vara felaktig! § __ Exempel Ett enkelt [exempel, 05_ass/ip2/5/5.1/example.html]. __ Tips Man kan använda modulen [GitHub: PHPMailer, https://github.com/PHPMailer/PHPMailer] och för en minimal installation krävs filen: - [PHPMailer.zip, 05_ass/ip2/5/5.2/PHPMailer.zip] Packa upp denna zip-fil och lägg filerna: - §PHPMailerAutoload.php§ - §class.phpmailer.php§ - §class.smtp.php§ - §class.pop3.php§ i samma katalog som PHP-programmet och inled koden i PHP-programmet med: § § - Lösenord: §§ Det speciella lösenordet fås där man hanterar sitt Google-konto: = Slå på tvåstegsverifiering = Skapa ett applösenord: -- Välj din enhet, exempelvis §Mac§ -- Välj app §Annan§ I koden skriver man då: § $mail->IsSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->Port = 465; $mail->SMTPAuth = true; $mail->Username = 'x.y@gmail.com'; $mail->Password = '12345'; $mail->SMTPSecure = 'ssl'; § Byt här §x.y@gmail.com§ och §12345§ till ditt eget Gmail-epostadress och lösenord. Man kan även använda §TLS§ på port §587§. Om man får felet: § 2018-02-20 12:47:35 SMTP ERROR: Failed to connect to server: (0) 2018-02-20 12:47:35 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting could not sendSMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting § så är någonting är fel i konfigurationen av SSL och det blir fel när PHP ska verifiera certifikatet. Lägg till följande kod för att slå av detta: § $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); § För att få felmeddelanden så kan man även ha med: §$mail->SMTPDebug = SMTP::DEBUG_SERVER§. Om man kör på en dator i DSV:s nätverk och vill använda SU:s epostserver så ska man sätta: § $mail->IsSMTP(); $mail->Host = 'smtp.su.se'; § Man kan även använda PHP:s §mail§-funktion. Detta kräver dock att man antingen: - Konfigurerar XAMPP för §sendmail§ (som finns inbyggt) - Kör programmet på DSV där §sendmail§ redan är konfigurerat __ Hjälp ~ 05_ass/help/01.txt > [Klicka här för hjälp, helper.dsv@gmail.com, Webbutv II: 5.1 Epost-sändning utan bifogade filer: http://people.dsv.su.se/~pierre/i/i.cgi?href=05_ass/ip2/5.1.txt] ½===system_tutoring_message===½ < ~ 05_ass/help/02.txt