PHP Mail()函数,用于处理HTML/文本和附件
我正在使用PHP mail()函数处理电子邮件,现在我想添加新内容,但不知道如何处理 我创建的基本PHP邮件类如下所示:PHP Mail()函数,用于处理HTML/文本和附件,php,email,word-wrap,Php,Email,Word Wrap,我正在使用PHP mail()函数处理电子邮件,现在我想添加新内容,但不知道如何处理 我创建的基本PHP邮件类如下所示: <?php class Send_Mail { private $to = array(); private $subject = null; private $from = null; private $replyTo = null; private $type = self::TEXT; const HTML =
<?php
class Send_Mail {
private $to = array();
private $subject = null;
private $from = null;
private $replyTo = null;
private $type = self::TEXT;
const HTML = 0;
const TEXT = 1;
public function __construct() {
}
public function setTo($array) {
$this->to = $array;
}
public function setType($type) {
if($type == self::HTML || $type == self::TEXT) {
$this->type = $type;
}
}
public function setSubject($subject) {
$this->subject= $subject;
}
public function setMessage($message) {
$this->message = $message;
}
public function setFrom($from) {
$this->from = $from;
}
public function send() {
if ( $this->to == array() ||
$this->from == null ||
$this->message == null
) {
trigger_error("The email can't be sent ! One of the mandatory fields at least isn't set !");
return false;
}
else {
$this->to = implode(',', $this->to);
$this->subject = ($this->subject == null) ? "" : $this->subject;
$headers = array();
$headers[] = "MIME-Version: 1.0" . "\r\n";
if($this->type == self::HTML) {
$headers[] = "Content-type: text/html; charset=UTF-8" . "\r\n";
} else {
$headers[] = "Content-type: text/plain; charset=UTF-8" . "\r\n";
}
$headers[] = "To: " . $this->to . "\r\n";
$headers[] = "From: " . $this->from . "\r\n";
$headers[] = "Reply-To: " . $this->from . "\r\n";
return mail($this->to, $this->subject, $this->message, implode('', $headers));
}
}
}
*/
?>
所以基本上我不能发送附件。。我还想添加多个密件抄送和多个抄送支持
此外,正如PHP文档中所说,行的长度不应超过70个字符。如果我使用wordwrap,我可以破坏HTML标记,我该如何处理这种情况呢(提供带有附件的电子邮件并非易事,因为您需要实现多部分正文 最好使用图书馆来解决这个问题。例如: 或 否则你必须自己写 有关附件,请查看此 对于其他电子邮件头,如抄送或密件抄送,请阅读此
我会寻找一个不使用
mail()的好类
函数,尤其不适用于附件等复杂任务。请使用一个像样的mailer类来代替phpMailer。另请参见以下回答:我不喜欢框架,Zend提供了大量的可能性,但它不针对特定类型的网站,因此会导致大量内存使用。在大型网站上使用它肯定会导致emory的问题,但那是另一个问题!我仍然建议你使用一个框架(在zend的情况下,你只需要使用你需要的部分,整个MVC的东西)。但是我用一些技巧改进了我的答案,让你自己的类。