Отправка почты с серверов виртуального хостинга.
Опубликовано Евгений Точилин on 19 October 2015 10:37:58

Как отправлять письма, используя PHP?

<?php

$mhSmtpMail_Server = "smtp.domain.tld"; // Укажите адрес SMTP-сервера
$mhSmtpMail_Port = "25"; // Порт SMTP-сервера
$mhSmtpMail_Username = "postmaster@domain.tld"; // Имя почтового ящика (пользователя)
$mhSmtpMail_Password = "password"; // и пароль к нему.
$mhSmtpMail_From = "Имя отправителя"; // Имя отправителя в поле From

// Обратите внимание, что в условиях нашей почтовой системы, имя пользователя требуется указывать полностью, например postmaster@domain.tld

function MailSmtp($to, $subject, $message, $headers)

{

global $mhSmtpMail_Server, $mhSmtpMail_Port, $mhSmtpMail_Username, $mhSmtpMail_Password;

$mhSmtpMail_localhost = "localhost";
$mhSmtpMail_newline = "\r\n";
$mhSmtpMail_timeout = "30";

$smtpConnect = fsockopen($mhSmtpMail_Server, $mhSmtpMail_Port, $errno, $errstr, $mhSmtpMail_timeout);
$smtpResponse = fgets($smtpConnect, 515);

if(empty($smtpConnect))
{
$output = "Failed to connect: $smtpResponse";
return $output;
}
else
{
$logArray['connection'] = "Connected: $smtpResponse";
}

fputs($smtpConnect, "HELO $mhSmtpMail_localhost" . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['heloresponse'] = "$smtpResponse";

fputs($smtpConnect,"AUTH LOGIN" . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authrequest'] = "$smtpResponse";

fputs($smtpConnect, base64_encode($mhSmtpMail_Username) . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authmhSmtpMail_username'] = "$smtpResponse";

fputs($smtpConnect, base64_encode($mhSmtpMail_Password) . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authmhSmtpMail_password'] = "$smtpResponse";

fputs($smtpConnect, "MAIL FROM: $mhSmtpMail_Username" . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailmhSmtpMail_fromresponse'] = "$smtpResponse";

fputs($smtpConnect, "RCPT TO: $to" . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailtoresponse'] = "$smtpResponse";

fputs($smtpConnect, "DATA" . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data1response'] = "$smtpResponse";

fputs($smtpConnect, "Subject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data2response'] = "$smtpResponse";

fputs($smtpConnect,"QUIT" . $mhSmtpMail_newline);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['quitresponse'] = "$smtpResponse";

}

?>

 

 

Как отправлять письма, используя ASP.NET?

Пример для языка «C#»:

<% @Page Language="c#" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%

MailMessage message = new MailMessage(); // создание нового письма
message.To.Add ("user@tomail.tld"); // добавление адреса получателя
message.From = new MailAddress("from@domain.tld", "Имя_отправителя"); // указание имени и адреса отправителя
message.Subject = "Тема письма"; // указание темы письма
message.BodyEncoding = System.Text.Encoding.UTF8; // указание кодировки письма
message.IsBodyHtml = false; // указание формата письма (true - HTML, false - не HTML)
message.Body = "Текст письма"; // указание текста (тела) письма

SmtpClient client = new SmtpClient("smtp.domain.tld",25); // создание нового подключения к серверу "smtp.domain.tld"
client.DeliveryMethod = SmtpDeliveryMethod.Network; // определяет метод отправки сообщений
client.EnableSsl = false; // отключает необходимость использования защищенного соединения с сервером
client.UseDefaultCredentials = false; // отключение использования реквизитов авторизации "по-умолчанию"
client.Credentials = new NetworkCredential("postmaster@domain.tld", "***password***"); // указание нужных реквизитов (имени пользователя и пароля) для авторизации на SMTP-сервере
client.Send(message); // отправка сообщения

%>

 

Пример для языка «VisualBasic»:

<% @Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%

Dim smtpMssg AS new MailMessage ' объявление нового объекта типа "MailMessage"
smtpMssg.From = New MailAddress ("admin@domain.tld", "Имя_отправителя") ' указание имени и адреса отправителя
smtpMssg.To.Add ("user@tomail.tld") ' добавление адреса получателя
smtpMssg.Subject = "Тема письма" ' указание темы письма
smtpMssg.Body = "Текст письма" ' указание текста (тела) письма
smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 ' указание кодировки письма
smtpMssg.IsBodyHtml = false ' указание формата письма (true - HTML, false - не HTML)

Dim SmtpMail As New SmtpClient("smtp.domain.tld", 25)' объявление нового объекта типа "SmtpClient"
SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network ' указание метода доставки письма
SmtpMail.UseDefaultCredentials = False ' отключение использования реквизитов авторизации "по-умолчанию"
SmtpMail.EnableSsl = False ' отключает необходимость использования защищенного соединения с сервером
SmtpMail.Credentials = new NetworkCredential("postmaster@domain.tld", "***password***") ' указание нужных реквизитов (имени пользователя и пароля) для авторизации на SMTP-сервере
SmtpMail.Send(smtpMssg) ' отправка сообщения

%>

 

 

 

(0 голос(а))
Эта статья помогла
Эта статья не помогла

Комментарии (0)