[ Index ] |
|
Code source de Symfony 1.0.0 |
1 <?php 2 3 /* 4 * This file is part of the symfony package. 5 * (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com> 6 * 7 * For the full copyright and license information, please view the LICENSE 8 * file that was distributed with this source code. 9 */ 10 11 /** 12 * 13 * sfMail class. 14 * 15 * @package symfony 16 * @subpackage addon 17 * @author Fabien Potencier <fabien.potencier@symfony-project.com> 18 * @version SVN: $Id: sfMail.class.php 3172 2007-01-05 16:03:15Z fabien $ 19 */ 20 class sfMail 21 { 22 protected $mailer; 23 24 public function __construct() 25 { 26 require_once(sfConfig::get('sf_symfony_lib_dir').'/vendor/phpmailer/class.phpmailer.php'); 27 require_once(sfConfig::get('sf_symfony_lib_dir').'/vendor/phpmailer/class.smtp.php'); 28 29 $this->mailer = new PHPMailer(); 30 } 31 32 public function initialize() 33 { 34 } 35 36 public function setCharset($charset) 37 { 38 $this->mailer->CharSet = $charset; 39 } 40 41 public function getCharset() 42 { 43 return $this->mailer->CharSet; 44 } 45 46 public function setContentType($content_type) 47 { 48 $this->mailer->ContentType = $content_type; 49 } 50 51 public function getContentType() 52 { 53 return $this->mailer->ContentType; 54 } 55 56 public function setPriority($priority) 57 { 58 $this->mailer->Priority = $priority; 59 } 60 61 public function getPriority() 62 { 63 return $this->mailer->Priority; 64 } 65 66 public function setEncoding($encoding) 67 { 68 $this->mailer->Encoding = $encoding; 69 } 70 71 public function getEncoding() 72 { 73 return $this->mailer->Encoding; 74 } 75 76 public function setSubject($subject) 77 { 78 $this->mailer->Subject = $subject; 79 } 80 81 public function getSubject() 82 { 83 return $this->mailer->Subject; 84 } 85 86 public function setBody($body) 87 { 88 $this->mailer->Body = $body; 89 } 90 91 public function getBody() 92 { 93 return $this->mailer->Body; 94 } 95 96 public function setMailer($type = 'mail', $options = array()) 97 { 98 switch ($type) 99 { 100 case 'smtp': 101 $this->mailer->IsSMTP(); 102 if (isset($options['keep_alive'])) $this->mailer->SMTPKeepAlive = true; 103 break; 104 case 'sendmail': 105 $this->mailer->IsSendmail(); 106 break; 107 default: 108 $this->mailer->IsMail(); 109 break; 110 } 111 } 112 113 public function getMailer() 114 { 115 return $this->mailer->Mailer; 116 } 117 118 public function setSender($address, $name = null) 119 { 120 if (!$address) 121 { 122 return; 123 } 124 125 if ($name == null) 126 { 127 list($address, $name) = $this->splitAddress($address); 128 } 129 $this->mailer->Sender = $address; 130 } 131 132 public function getSender() 133 { 134 return $this->mailer->Sender; 135 } 136 137 public function setFrom($address, $name = null) 138 { 139 if (!$address) 140 { 141 return; 142 } 143 144 if ($name == null) 145 { 146 list($address, $name) = $this->splitAddress($address); 147 } 148 $this->mailer->From = $address; 149 $this->mailer->FromName = $name; 150 } 151 152 public function getFrom() 153 { 154 return $this->mailer->From; 155 } 156 157 /* 158 * $recipents: 159 * test@example.com 160 * Example email <test@example.com> 161 * array('test@example.com', 'test1@example.com') 162 * array('Example email <test@example.com>', 'test1@example.com') 163 */ 164 public function addAddresses($addresses) 165 { 166 if (!$addresses) 167 { 168 return; 169 } 170 171 if (is_array($addresses)) 172 { 173 foreach ($addresses as $address) 174 { 175 list($address, $name) = $this->splitAddress($address); 176 $this->mailer->AddAddress($address, $name); 177 } 178 } 179 else 180 { 181 list($address, $name) = $this->splitAddress($addresses); 182 $this->mailer->AddAddress($address, $name); 183 } 184 } 185 186 private function splitAddress($address) 187 { 188 if (preg_match('/^(.+)\s<(.+?)>$/', $address, $matches)) 189 { 190 return array($matches[2], $matches[1]); 191 } 192 else 193 { 194 return array($address, ''); 195 } 196 } 197 198 public function addAddress($address, $name = null) 199 { 200 if ($name == null) 201 { 202 list($address, $name) = $this->splitAddress($address); 203 } 204 $this->mailer->AddAddress($address, $name); 205 } 206 207 public function addCc($address, $name = null) 208 { 209 if ($name == null) 210 { 211 list($address, $name) = $this->splitAddress($address); 212 } 213 $this->mailer->AddCc($address, $name); 214 } 215 216 public function addBcc($address, $name = null) 217 { 218 if ($name == null) 219 { 220 list($address, $name) = $this->splitAddress($address); 221 } 222 $this->mailer->AddBcc($address, $name); 223 } 224 225 public function addReplyTo($address, $name = null) 226 { 227 if (!$address) 228 { 229 return; 230 } 231 232 if ($name == null) 233 { 234 list($address, $name) = $this->splitAddress($address); 235 } 236 $this->mailer->AddReplyTo($address, $name); 237 } 238 239 public function clearAddresses() 240 { 241 $this->mailer->ClearAddresses(); 242 } 243 244 public function clearCcs() 245 { 246 $this->mailer->ClearCcs(); 247 } 248 249 public function clearBccs() 250 { 251 $this->mailer->ClearBccs(); 252 } 253 254 public function clearReplyTos() 255 { 256 $this->mailer->ClearReplyTos(); 257 } 258 259 public function clearAllRecipients() 260 { 261 $this->mailer->ClearAllRecipients(); 262 } 263 264 public function addAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') 265 { 266 $this->mailer->AddAttachment($path, $name, $encoding, $type); 267 } 268 269 public function addStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') 270 { 271 $this->mailer->AddStringAttachment($string, $filename, $encoding, $type); 272 } 273 274 public function addEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') 275 { 276 $this->mailer->AddEmbeddedImage($path, $cid, $name, $encoding, $type); 277 } 278 279 public function setAttachments($attachments) 280 { 281 if ($attachments instanceof sfMailAttachments) 282 { 283 $this->mailer->setAttachments($attachments->getAttachments()); 284 } 285 } 286 287 public function clearAttachments() 288 { 289 $this->mailer->ClearAttachments(); 290 } 291 292 function addCustomHeader($name, $value) 293 { 294 $this->mailer->AddCustomHeader("$name: $value"); 295 } 296 297 function clearCustomHeaders() 298 { 299 $this->mailer->ClearCustomHeaders(); 300 } 301 302 public function prepare() 303 { 304 // Set whether the message is multipart/alternative 305 if (!empty($this->mailer->AltBody)) 306 { 307 $this->mailer->ContentType = "multipart/alternative"; 308 } 309 310 $this->mailer->SetMessageType(); 311 } 312 313 public function send() 314 { 315 if (!$this->mailer->Send()) 316 { 317 throw new sfException($this->mailer->ErrorInfo); 318 } 319 } 320 321 public function smtpClose() 322 { 323 $this->mailer->SmtpClose(); 324 } 325 326 public function getRawHeader() 327 { 328 return $this->mailer->CreateHeader(); 329 } 330 331 public function getRawBody() 332 { 333 return $this->mailer->CreateBody(); 334 } 335 336 public function setDomain($hostname) 337 { 338 $this->mailer->Hostname = $hostname; 339 } 340 341 public function getDomain() 342 { 343 return $this->mailer->Hostname; 344 } 345 346 public function setHostname($hostname) 347 { 348 $this->mailer->Host = $hostname; 349 } 350 351 public function getHostname() 352 { 353 return $this->mailer->Host; 354 } 355 356 public function setPort($port) 357 { 358 $this->mailer->Port = $port; 359 } 360 361 public function getPort() 362 { 363 return $this->mailer->Port; 364 } 365 366 public function setUsername($username) 367 { 368 $this->mailer->Username = $username; 369 $this->mailer->SMTPAuth = $username ? true : false; 370 } 371 372 public function getUsername() 373 { 374 return $this->mailer->Username; 375 } 376 377 public function setPassword($password) 378 { 379 $this->mailer->Password = $password; 380 } 381 382 public function getPassword() 383 { 384 return $this->mailer->Password; 385 } 386 387 public function setWordWrap($wordWrap) 388 { 389 $this->mailer->WordWrap = $wordWrap; 390 } 391 392 public function getWordWrap() 393 { 394 return $this->mailer->WordWrap; 395 } 396 397 public function setAltBody($text) 398 { 399 $this->mailer->AltBody = $text; 400 } 401 402 public function getAltBody() 403 { 404 return $this->mailer->AltBody; 405 } 406 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Fri Mar 16 22:42:14 2007 | par Balluche grâce à PHPXref 0.7 |