【发布时间】:2013-01-10 13:03:21
【问题描述】:
我正在为我的电子邮件使用 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 = 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));
}
}
}
*/
?>
所以基本上我无法发送附件.. 我还想添加 multiple BCC 和 multiple CC 支持。
除了 PHP 文档中所说的行不应超过 70 个字符这一事实外。如果我使用 wordwrap 会破坏 HTML 标记,我该如何处理? :(
【问题讨论】:
-
我会寻找一个很好的类来做到这一点
-
不要使用
mail()函数,尤其是对于附件等复杂任务。使用像 phpMailer 这样的像样的邮件程序类。另请参阅此答案:stackoverflow.com/questions/12301358/…