first commit
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
namespace Mail;
|
||||
class Mail {
|
||||
public function send() {
|
||||
if (is_array($this->to)) {
|
||||
$to = implode(',', $this->to);
|
||||
} else {
|
||||
$to = $this->to;
|
||||
}
|
||||
|
||||
$boundary = '----=_NextPart_' . md5(time());
|
||||
|
||||
$header = 'MIME-Version: 1.0' . PHP_EOL;
|
||||
$header .= 'Date: ' . date('D, d M Y H:i:s O') . PHP_EOL;
|
||||
$header .= 'From: =?UTF-8?B?' . base64_encode($this->sender) . '?= <' . $this->from . '>' . PHP_EOL;
|
||||
|
||||
if (!$this->reply_to) {
|
||||
$header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->sender) . '?= <' . $this->from . '>' . PHP_EOL;
|
||||
} else {
|
||||
$header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->reply_to) . '?= <' . $this->reply_to . '>' . PHP_EOL;
|
||||
}
|
||||
|
||||
$header .= 'Return-Path: ' . $this->from . PHP_EOL;
|
||||
$header .= 'X-Mailer: PHP/' . phpversion() . PHP_EOL;
|
||||
$header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . PHP_EOL . PHP_EOL;
|
||||
|
||||
if (!$this->html) {
|
||||
$message = '--' . $boundary . PHP_EOL;
|
||||
$message .= 'Content-Type: text/plain; charset="utf-8"' . PHP_EOL;
|
||||
$message .= 'Content-Transfer-Encoding: 8bit' . PHP_EOL . PHP_EOL;
|
||||
$message .= $this->text . PHP_EOL;
|
||||
} else {
|
||||
$message = '--' . $boundary . PHP_EOL;
|
||||
$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . PHP_EOL . PHP_EOL;
|
||||
$message .= '--' . $boundary . '_alt' . PHP_EOL;
|
||||
$message .= 'Content-Type: text/plain; charset="utf-8"' . PHP_EOL;
|
||||
$message .= 'Content-Transfer-Encoding: 8bit' . PHP_EOL . PHP_EOL;
|
||||
|
||||
if ($this->text) {
|
||||
$message .= $this->text . PHP_EOL;
|
||||
} else {
|
||||
$message .= 'This is a HTML email and your email client software does not support HTML email!' . PHP_EOL;
|
||||
}
|
||||
|
||||
$message .= '--' . $boundary . '_alt' . PHP_EOL;
|
||||
$message .= 'Content-Type: text/html; charset="utf-8"' . PHP_EOL;
|
||||
$message .= 'Content-Transfer-Encoding: 8bit' . PHP_EOL . PHP_EOL;
|
||||
$message .= $this->html . PHP_EOL;
|
||||
$message .= '--' . $boundary . '_alt--' . PHP_EOL;
|
||||
}
|
||||
|
||||
foreach ($this->attachments as $attachment) {
|
||||
if (file_exists($attachment)) {
|
||||
$handle = fopen($attachment, 'r');
|
||||
|
||||
$content = fread($handle, filesize($attachment));
|
||||
|
||||
fclose($handle);
|
||||
|
||||
$message .= '--' . $boundary . PHP_EOL;
|
||||
$message .= 'Content-Type: application/octet-stream; name="' . basename($attachment) . '"' . PHP_EOL;
|
||||
$message .= 'Content-Transfer-Encoding: base64' . PHP_EOL;
|
||||
$message .= 'Content-Disposition: attachment; filename="' . basename($attachment) . '"' . PHP_EOL;
|
||||
$message .= 'Content-ID: <' . urlencode(basename($attachment)) . '>' . PHP_EOL;
|
||||
$message .= 'X-Attachment-Id: ' . urlencode(basename($attachment)) . PHP_EOL . PHP_EOL;
|
||||
$message .= chunk_split(base64_encode($content));
|
||||
}
|
||||
}
|
||||
|
||||
$message .= '--' . $boundary . '--' . PHP_EOL;
|
||||
|
||||
ini_set('sendmail_from', $this->from);
|
||||
|
||||
if ($this->parameter) {
|
||||
mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);
|
||||
} else {
|
||||
mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user