У меня есть локальный экземпляр sendmail, работающий на моем компьютере, и я использую скрипт php для отправки пользовательских сообщений, чтобы запустить внутреннее приложение анонимных предложений.
В настоящее время я использую следующий скрипт:
<?php
$to = '*to*';
$subject = '*subject*';
$message = '*message*';
$headers = 'From: *from*' . "\r\n" .
'Reply-To: *replyto*' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
Я хотел бы иметь возможность поддерживать HTML, который, как я предполагаю, был следующим:
<?php
$to = '*to*';
$subject = '*subject*';
$message = '<html><a href="www.google.com">here</a></html>';
$headers = 'From: *from*' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Contesnt-type:text/html;charset=UTF-8' . "\r\n";
$headers .= 'Reply-To: *replyto*' . "\r\n";
mail($to, $subject, $message, $headers);
?>
Я делаю это с помощью этих функций:
private function plaintext_version($text) {
return "--PHP-nextpart-".$this->random_hash
."\nContent-Type: text/plain; charset=\"iso-8859-1\""."\nContent-Transfer-Encoding: 7bit"."\n$text";
} // EOF plaintext_version
private function HTML_version($html) {
return "--PHP-nextpart-".$this->random_hash."Content-Type: text/html; charset=\"iso-8859-1\"Content-Transfer-Encoding: 7bit
$html
";
} // EOF HTML_version
Вот функция «Отправить». Обратите внимание, что Content-Type является «multipart / alternative» и указывается «border»; Я создаю границу, объединяя «—PHP-nextpart-» с выводом хеш-функции.
public function Send() {
if (strlen($this->cc_to)) $this->headers .='Cc: '.$this->cc_to . "\r\n";
if (strlen($this->bcc_to)) $this->headers .='Bcc: '.$this->bcc_to . "\r\n";
if (strlen($this->reply_to)) $this->reply_to = $this->mail_from;$l_headers = 'From: '.$this->mail_from . "\r\n".'Reply-To: '.$this->reply_to. "\r\n".'X-Mailer: PHP/' . phpversion()."\r\n";
if (strlen($this->headers)) $l_headers .= $this->headers;
$l_headers .= "Content-Type: multipart/alternative; boundary=\"PHP-nextpart-".$this->random_hash."\"";
$mess = $this->plaintext_version($this->msg_text) . "\n\n". $this->HTML_version($this->html_version);
if (strlen($this->to_name)) {
$to = "\"".$this->to_name."\" <".$this->mail_to.">";
} else {
$to = $this->mail_to;
}
$sent = mail($to,$this->subject,$mess,$l_headers);
if ($sent) return true;
return false;
} //EOF Send()
Других решений пока нет …