php swiftmailer的例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php swiftmailer的例子相关的知识,希望对你有一定的参考价值。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>swiftmailer</title>
</head>
<body>
<br>
<form class="form-horizontal" action="mailer.php" method="post" enctype="multipart/form-data">

    <input type="text" name="name" value="John Doe"><br><br>
    <input type="email" name="email" type="text" value="qqq@gmail.com"><br><br>
    <textarea name="message">default text</textarea><br><br>
    <input type="file" name="file" multiple><br><br>
    <button type="submit" name="submit">Send</button>
    
</form>
</body>
</html>
<?php 
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1); 
    require_once 'composer/vendor/autoload.php';
    
    // grab post data
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST)) {
        $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
        $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
        $message = filter_var($_POST['message'], FILTER_SANITIZE_STRING);
        
    // create email body message
        $body = "Name: " . $name . "<br/>" . "Email: " . $email . "<br/>" . "Message: " . $message;
    
    // create the tranport
        $transport =(new Swift_SmtpTransport('smtp.yandex.ru', 465, 'ssl'))
            ->setUsername('example@mail.ru')
            ->setPassword('---')
        ;
            
    // create mailer
        $mailer = new Swift_Mailer($transport);
        
        $message = (new Swift_Message('Тема письма'))
          ->setFrom(['example@mail.ru' => 'Заголовок сообщения от кого']) //почта из $transport
          ->setTo(['to_example@mail.r' => 'A name']) //на какой ящик отправлять
          ->setBody($body, 'text/html') //тело письма и формат сообщение
         ;
         
     //files start attachment
         if (isset($_FILES['file']) && !empty($_FILES['file']['name'])) {
                $now = date('d-m-h-i-s');
                $fname = htmlspecialchars(mb_strtolower(trim((string)$_FILES['file']['name'])));
                mkdir("uploads/" . $now);
                $target_path = "uploads/$now/$fname";
                move_uploaded_file($_FILES['file']['tmp_name'], $target_path);
        
                $message->attach(Swift_Attachment::fromPath($target_path, $fname));
         }
         
        $mailer->send($message);
        
        header("Location: index.php");
        exit;
    }
    
?>

以上是关于php swiftmailer的例子的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftMailer 的 PHP 附件

PHP - 使用 STARTTLS 和自签名证书的 Swiftmailer

PHP SwiftMailer类

使用 Swiftmailer 的 PHP 驱动的 HTML 联系表单有多安全?

使用 php、gmail 和 swiftmailer 发送电子邮件会导致与 SSL 相关的错误

无法让sendmail与Windows上的Swiftmailer Bundle一起使用