- Отправка писем через SMTP на PHP
- Сколько писем можно отправлять с бесплатных (SMTP) почтовых ящиков?
- Send HTML Email in PHP via SMTP
- Using SMTP for Sending Email
- How to Send HTML Email in PHP Using Gmail SMTP
- php.ini
- sendmail.ini
- PHP Code for Sending HTML Email
- Hi! We are glad to announce the Christmas contest winners.
- Отправка писем через SMTP в PHPMailer
- Яндекс Почта
- Mail.ru
- Gmail
- Рамблер
- iCloud
- Мастерхост
- Timeweb
- Хостинг Центр (hc.ru)
- REG.RU
- ДЖИНО
- nic.ru
- Бегет — beget.com
- Спринтхост — sprinthost.ru
- Отправка почты через SMTP с помощью PHP
- Готовый класс — PHP
- Настройка класса
- Прикрепление файлов к письму
Отправка писем через SMTP на PHP
Некоторое время назад, я заметил, что письма, отправляемые с моего сервера, перестали доходить до адресата. Редко, попадали в папку Спам, чаще совсем не доходили. Сразу было понятно, что проблема в функции mail();
Пути решения было два: Читать много мануалов и настраивать сервак так, чтобы функция mail() корректно отправляла всю корреспонденцию или отправлять письма через SMTP. Как вы понимаете, путь я выбрал второй.
$config [ ‘smtp_debug’ ] = true ; //Если Вы хотите видеть сообщения ошибок, укажите true вместо false
$config [ ‘smtp_from’ ] = ‘МегаСервис’ ; //Ваше имя — или имя Вашего сайта. Будет показывать при прочтении в поле «От кого»
$SEND . = ‘Subject: =?’ . $config [ ‘smtp_charset’ ] . ‘?B?’ . base64_encode ( $subject ) . «=?=\r\n» ;
$SEND . = «From: \»=?» . $config [ ‘smtp_charset’ ] . «?B?» . base64_encode ( $config [ ‘smtp_from’ ] ) . «=?=\» <" . $config [ 'smtp_username' ] . ">\r\n» ;">
if ( ! $socket = fsockopen ( $config [ ‘smtp_host’ ] , $config [ ‘smtp_port’ ] , $errno , $errstr , 30 ) )
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Не могу отправить HELO!
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Не могу найти ответ на запрос авторизаци.
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Логин авторизации не был принят сервером!
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Пароль не был принят сервером как верный! Ошибка авторизации!
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Не могу отправить комманду MAIL FROM:
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Не могу отправить комманду RCPT TO:
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Не могу отправить комманду DATA
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo ‘
Не смог отправить тело письма. Письмо не было отправленно!
‘ ;
if ( $config [ ‘smtp_debug’ ] ) echo «
Проблемы с отправкой почты!
$response
$line
» ;
if ( $config [ ‘smtp_debug’ ] ) echo «
Проблемы с отправкой почты!
$response
$line
» ;
Использовать её можно так-же как и обычную функцию mail:
smtpmail ( ‘Имя получателя’ , ’email-получателя@mail.ru’ , ‘Тема письма’ , ‘HTML или обычный текст письма’ ) ;
Сколько писем можно отправлять с бесплатных (SMTP) почтовых ящиков?
- mail.ru — не более 1 письма в минуту
- yandex.ru — не более 150 писем в сутки, не более 25 адресатов в одном письме
- gmail.com, tut.by — не более 500 писем в сутки (хотя в справке гугла фигурирует 2000), не более 500 получателей в одном письме за раз при отправке через интерфейс gmail.com (через web-интерфейс, т.е. при входе через браузер), не более 100 получателей в одном письме за раз при отправке через ваш почтовый клиент
- rambler.ru — не более 200 писем в час
- ukr.net — не более 250 писем в сутки
- meta.ua — не более 200 писем в сутки
- aol.com — не более 500 писем в сутки
- lycos.com — не более 250 писем в сутки
Рекомендую отправлять количества писем на 20-30 % меньше лимита.
Gmail может заблокировать (первый раз на сутки) ваш аккаунт и при меньшем чем 500 числе адресатов в письме. Очень важно, чтобы адреса были живые, работающие. При нескольких десятках мертвых адресов в одном письме c gmail вероятность блокировки очень велика.
Send HTML Email in PHP via SMTP
Hi! Welcome to Koding Made Simple. Today we’ll see how to send html email in php. PHP’s mail() function is simple and effective and let you send emails with text/html contents and with attachments. Though it has some shortcomings compared to other mailer libraries like PHPMailer, it does the job and comes in-built with PHP package. Plain text emails are good enough, but the ability to send html emails is more powerful in email marketing and other promotions.
HTML emails include html tags and let you add images, format texts and other eye-catching call-to-action buttons etc. But you have to add additional headers for mailing them.
Using SMTP for Sending Email
You can send mails via third party Mail Servers but you need authentication first. That is if you want to send email via Gmail in php, then you must have a working gmail account and provide the accounts email-id and password for authentication. We’ll see how to set up the php configuration for sending email via gmail smtp server.
How to Send HTML Email in PHP Using Gmail SMTP
You need to change the settings in two places i.e., php.ini and sendmail.ini files. You must remove the ; at the starting of the line to enable the settings in these files. Please note the configuration is given for the xampp package. Open ‘php.ini’ file located at C:\xampp\php\php.ini and edit the settings like below.
php.ini
[mail function] SMTP = smtp.gmail.com smtp_port = 587 sendmail_from = christmascontest@gmail.com sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Next open the ‘sendmail.ini’ file located at C:\xampp\sendmail\sendmail.ini and make the below changes.
sendmail.ini
smtp_server = smtp.gmail.com smtp_port = 587 auth_username = christmascontest@gmail.com auth_password = christmascontest force_sender = christmascontest@gmail.com
Save the files and restart apache server for the changes to reflect. Now you are ready to send send html email using php mail() function.
Create a php file and write down the below php mailer code to it and save.
PHP Code for Sending HTML Email
Hi! We are glad to announce the Christmas contest winners.
# | Ticket No. | Name |
---|---|---|
#1 | P646MLDO808K | Sally |
#2 | DFJ859LV9D5U | Parker |
#3 | AU30HI8IHL96 | Justin |