Ответы пользователя по тегу PHPMailer
  • Как правильно защитить форму от спама?

    DanArst
    @DanArst Куратор тега HTML
    Гриффиндор в моде при любой погоде!
    Hidden-инпуты для защиты от спама - это фигня. Больше половины ботов раскусят.
    Я на многих сайтах ставлю довольно простую защиту, которая отлично работает.
    Добавь в форму какой-нибудь текстовый инпут и скрой его стилями, но НЕ ЮЗАЙ display: none;, visibility:hidden;, opacity:0;, так как многие боты и это раскусят.

    Например input с name="copyemail":
    <form action="">
    	<input type="text" name="copyemail" placeholder="Email для копии">
    	<input type="text" name="name" placeholder="Имя">
    	<input type="email" name="email">
    	<button type="submit">Отправить</button>
    </form>

    и стили для него:
    input[name="copyemail"] {
        display: block;
        width: 2px;
        height: 2px;
        margin-bottom: -2px;
        border: none;
        padding: 0;
        opacity: 0.01;
    }


    И дальше уже на сервере проверяешь:
    if ($_POST['copyemail']) {    
        //Это спам! Делаем вид, что сообщение отправлено.
        die('Ваше сообщение отправлено');
    } else {
         //Все норм. Метро Люблино, работаем
    }
    Ответ написан
    3 комментария
  • Как добавить служебный заголовок в modx revo?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Напишите свой хук email для Login.
    Про хуки почитайте тут.

    Просто в своем хуке к mail добавите примерно следующую строку:
    $this->modx->mail->header('List-Unsubscribe: <mailto:no-reply@test.com>,<".base_url()."unsubscribe/".$unique_unsub.">');
    Ответ написан
    Комментировать
  • Что делать при отправке формы?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    В 4-5 строках нужно указать логин и пароль от ящика, с которого должны отправляться письма. И тут вопрос: что это должен быть за ящик? К примеру я делаю лендинг заказчику с формой обратной связи и с этим скриптом. Что делать?


    Ну SMTP у вас указано gmail. Указываете просто почту и пароль от gmail-ящика, с которого будут отправляться письма. Условно:
    $mail->isSMTP();                                    
    $mail->Host = 'smtp.gmail.com'; 
    $mail->SMTPAuth = true;  
    $mail->Username = 'мояпочта@gmail.com';  
    $mail->Password = 'парольОтМоейПочты';                  
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;


    Если будет ошибка при отправке, то отключите двухфакторную аутентификацию
    Ответ написан
    3 комментария