используя основной php mail () для отправки через SMTP gmail

Можно ли отправлять почту в основном php через gmail smtp без использования какого-либо внешнего класса?

 DaveRandom05 апр. 2012 г., 14:28
Вам нужно будет использовать внешний классand вам понадобится расширение OpenSSL. Это потому что Gmailrequire SSL / TLS, и вы не можете сделать это с ядром PHP.
 MetalFrog05 апр. 2012 г., 14:27
Лучший вопрос: почему вы хотите? :)
 MetalFrog10 июл. 2015 г., 03:38
@Ayelis Как часто бывает, трудно передать сарказм только с помощью текста, хотя я надеялся, что смайлика хватит - чего хватило бы на три года. Это краткий способ сказать: «Есть лучшие варианты, у вас уже есть лучшее решение, просто копайте немного глубже». Если ты обижаешься на это,you're не копать достаточно далеко.
 gavanon26 янв. 2015 г., 00:14
Оба комментария неверны. Я согласен, что было бы идеально просто сказатьmail()вместо включения библиотеки 600 строк.
 Ayelis09 июл. 2015 г., 22:24
@MetalFrog Еще лучший вопрос: зачем тебе это делать?anything in the world с таким отношением. Я не могу вам сказатьhow often Я посещаю форумы, ища ответы на непонятные вопросы, иVery First ответALWAYS кто-то, как вы, спрашиваете «почему».Why NOT? Может быть, это нашаjob, Может быть, это то, что мы делаемfor a friend, Может быть, мы просто хотим знатьif it's possible, Почему ты неstop asking why, и если выactually know the answer, затемHELP OUT FOR A CHANGE.

Ответы на вопрос(5)

Если у вас есть доступ для редактированияphp.ini тогда вы можете сделать что-то вроде этого:

[mail function]
SMTP = ssl://smtp.gmail.com
smtp_port = 465
username = [email protected]
password = myemailpassword
sendmail_from = [email protected]

В качестве альтернативы вы можете сделать:

<?php
ini_set( 'smtp_port', 465 );
//etc
 05 апр. 2012 г., 14:29
Это не сработает. Gmail принимает соединение только через порт 465, который является SSL. Кроме того, я не вижу, как вы собираетесь выполнять процесс аутентификации.
 05 апр. 2012 г., 15:00
Добавьте да, я только что проверил свой код, вы не можете аутентифицироваться с помощью встроенной функции mail () ... вам нужно будет использовать сторонние опции, такие как PEAR или PHPMailer, чтобы заставить это работать ... или реализовать свое собственное использование fsockopen (хотя и немного придирчиво).

Об этом много недоразумений. На 100% возможно отправлять электронные письма, используя gmail, с помощью простой функции mail () PHP quat; команда.And это на 100% легко.

Install SSMTP:

sudo apt-get install ssmtp

Edit its settings file:

sudo nano /etc/ssmtp/ssmtp.conf

Внутри сделай так, чтобыbut with your own credentials:

mailhub=smtp.gmail.com:587
[email protected]
AuthPass=password
UseSTARTTLS=YES

# You can only do this if you've verified your domain with Gmail.
# If you haven't, delete, or add a # before this
hostname=yourwebsite.com

FromLineOverride=YES

И, наконец,open your php.iniи искатьsendmail_path и используйте это значение:

sendmail_path = /usr/sbin/ssmtp -t

Вот и все! Проверьте это на своем PHP, с помощью простого1-line mail function:

mail('[email protected]', 'Subject', 'Message', 'From: Your name <[email protected]>');
Update on Gmail Security

Gmail теперь блокирует это по умолчанию. Вы все еще можете сделать это, посетив:http://www.google.com/settings/security/lesssecureapps

Включите эту функциюON.

 09 апр. 2015 г., 10:58
Этот метод работает, только подтверждая
 30 авг. 2014 г., 14:59
Это было замечательное и прямолинейное решение :) Я потратил много времени, чтобы преодолеть эту ситуацию, и, надеюсь, этот метод работал совершенно без проблем.
 23 мая 2016 г., 20:59
Это все еще возможно. Gmail недавно отключил его по умолчанию, и теперь требуется включить менее безопасные приложения. Вы можете сделать это здесь:google.com/settings/security/lesssecureapps
 30 авг. 2014 г., 14:48
что это значит:You can only do this if you've verified your domain with Gmail.? Это связано с Gmail, или мы можем что-то сделать, чтобы подтвердить наш домен на Gmail?
 30 авг. 2014 г., 21:55
Спасибо за ваш отзыв! К сожалению, выбранный ответ неверен. Что касается использования подтвержденного домена, это применимо только в том случае, если вы хотите, чтобы адрес отправителя отличался от вашего адреса Gmail, например, если вы являетесь владельцем веб-сайта и хотите получить профессиональный адрес отправителя. Но вы не можете использовать любой адрес отправителя, например [email protected], если только вы не можете доказать, что у вас уже есть доступ к этому письму.How to verify this email with Gmail: Войдите в Gmail и в Настройки & gt; В разделе «Учетные записи» нажмите «Добавить другой свой адрес электронной почты». Введите адрес электронной почты, и Google отправит письмо с подтверждением со ссылкой для подтверждения
Решение Вопроса

Я не думаю, что это возможно, потому что вам нужно выполнить аутентификацию. Кроме того, вам нужно подключиться через сокет SSL, я не знаю, есть ли на складеmail() Функция поддержки этого.

Если вы готовы использоватьГруша Почта пакет, вы можете взглянуть на это:

Отправка электронной почты с использованием SMTP-сервера GMail со страницы PHP

 19 июл. 2018 г., 21:29
Этот ответ просто неверен!
 26 янв. 2015 г., 00:10
Это вполне возможно. Пожалуйста, посмотрите мой ответ. ;)

Это возможно, хотя вам нужно изменить настройки php.ini, см.Руководство по PHP, Вы можете изменить настройки php.ini во время выполнения сini_set

Вы можете сделать это с помощью библиотеки PHPmailer, которая уже имеет файл gmail.php.

просто откройте и поместите ваши данные в этот файл, вы также можете использовать аналогичный код в вашем файле.

Вы должны сделать настройки в настройках своей учетной записи Gmail, чтобы разрешить SMTP рассылку

 09 февр. 2017 г., 06:37
ОП хочет просто использовать основную функцию PHP mail (), а не какие-либо внешние библиотеки.

Ваш ответ на вопрос