Recommended Posts

Друзья, направьте меня, пожалуйста, по правильному пути, чтобы я смог настроить отправку почты из php...

Перерыл весь форум (в том числе англоязычный), не нашёл.

ssmtp вроде как настроил, но он только из терминала почту шлёт, а из php так и не хочет... где собака порылась? куда копать?

DSM 6.1, bare metal

Edited by Arabezar

Share this post


Link to post
Share on other sites
On 10/11/2017 at 1:51 AM, Arabezar said:

Друзья, направьте меня, пожалуйста, по правильному пути, чтобы я смог настроить отправку почты из php...

Перерыл весь форум (в том числе англоязычный), не нашёл.

ssmtp вроде как настроил, но он только из терминала почту шлёт, а из php так и не хочет... где собака порылась? куда копать?

DSM 6.1, bare metal

 

А собственно что вы пробовали и что получалось? Из dsm (там где емейл уведомления) отправку почты настроили? Тестовые емейлы проходят?

Если это все сделано - то потом из php емейлы можно отправлять как-то так: 

// Set the email header
// Generate a boundary
$boundary = md5(uniqid(time()));
// Email header
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$reply_to."\r\n";
$header .= "MIME-Version: 1.0\r\n";
// Multipart wraps the Email Content and Attachment
$header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$boundary."\r\n";
// Email content
// Content-type can be text/plain or text/html
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n";    
//last boundary, with "--" on the end
$header .= "--".$boundary."--\r\n"; 
mail($mail_to, $subject, $message, $header, "-f your_email@something.com");

Но удобнее использовать готовый php class, я пользуюсь скачанным отсюда: http://github.com/PHPMailer/PHPMailer

Тогда отправка письма выглядит примерно так: 

require_once ('/volume1/your_path/PHPMailer-master/class.phpmailer.php'); 
//
$email = new PHPMailer(); 
$email->From      = $from_mail;
$email->FromName  = $from_name;
$email->Subject   = $subject;
$email->Body      = $message;
$email->AddAddress($mail_to);
$email->Send();

Оба куска кода выдраны из готового скрипта, первый работал, но был заменен на второй. Возможно при выдирании первого куска я мог что-то и пропустить (во втором пропустить что-то сложно), если не заработает - дайте знать.

Edited by SergeS
  • Like 1

Share this post


Link to post
Share on other sites
On 15.10.2017 at 9:09 AM, SergeS said:

Из dsm (там где емейл уведомления) отправку почты настроили? Тестовые емейлы проходят?

Да, настроил, и тестовые сообщения, и сообщения уведомлений DSN (периодическая проверка дисков; пропадание/возобновление питания Упса; недоступность инета и т.д.) приходят... к DSN пренетзий нет.

 

On 15.10.2017 at 9:09 AM, SergeS said:

Если это все сделано - то потом из php емейлы можно отправлять как-то так

Благодарю за примеры, они обязательно пригодятся в будущем, не сомневаюсь, но сейчас проблема другая (читай ниже)

 

On 15.10.2017 at 9:09 AM, SergeS said:

А собственно что вы пробовали и что получалось?

Ставлю TikiWiki... На этапе проверки системных требований предлагается проверить почту... и вот здесь инсталлятор ругается:

Ошибка  

Tiki was not able to send a test message. Review your mail log for details.

Review the mail settings in your php.ini file (for example: confirm that the sendmail_path is correct). If your host requires SMTP authentication, additional configuration may be necessary.

Hide  

sendmail_path указывает на /usr/bin/ssmtp -t

Приведённые ниже терминальные команды почту шлют.

Терминальные команды  

echo "Subject: Test message" > /tmp/newmessage; echo "" >> /tmp/newmessage; cat /etc/ssmtp/revaliases >> /tmp/newmessage; ssmtp <some_email>@ya.ru < /tmp/newmessage

Hide  

 

Чего не хватает TikiWiki?!

Edited by Arabezar

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now