I have a link that i want to use as the body of an html email. here
is the code i use:
// Notify about comments
public function emailComment($Link, $ID) {
$mail = new SendMail();
$mail->SetCharSet("ISO-8859-1");
$mail->from("someone", "[EMAIL PROTECTED]");
$mail->to("[EMAIL PROTECTED]");
$mail->subject("New Comment!");
$str = '<a href="http://www.mysite.com/permalink.php?ID='.
$Link.'">Comment ID #'.$ID.'</a>';
$mail->text($str);
//$mail->attachment($fileName);
$mail->send();
Where link = a number.
the email that i get is:
So the email should be a link to: http://www.mysite.com/permalink.php?ID=120
but instead links to: http://www.mysite.com/permalink.php?ID%120
Here is the php sendmail library =
<?
class SendMail {
public $emailheader = "";
public $textheader = "";
public $textboundary = "";
public $emailboundary = "";
public $charset = "";
public $subject = "";
public $empfaenger = "";
public $attachment = array();
public $cc = array();
public $bcc = array();
public function __construct() {
$this->textboundary = uniqid(time());
$this->emailboundary = uniqid(time());
$this->charset = "ISO-8859-1";
}
public function SetCharSet($char) {
$this->charset = $char;
}
public function Validate_Email($emailAddress) {
if(!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-
z-]*[0-9a-z]\.)+([a-z]{2,4})/i", $emailAddress)) {
die('Invalid Email Address: '.$emailAddress);
}
return $emailAddress;
}
public function from($name, $email) {
$this->emailheader .= 'From: '.$name.'<'.$email.'>'."\r\n";
}
public function to($to) {
$this->empfaenger = $this->Validate_Email($to);
}
public function cc($cc) {
$this->cc[] = $cc;
}
public function bcc($cc) {
$this->bcc[] = $cc;
}
public function makeMimeMail() {
if(count($this->cc) > 0) {
$this->emailheader .= 'Cc: ';
for($i=0; $i<count($this->cc); $i++) {
if($i > 0) $this->emailheader .= ',';
$this->emailheader .=
$this->Validate_Email($this->cc[$i]);
}
$this->emailheader .= "\r\n";
}
if(count($this->bcc) > 0) {
$this->emailheader .= 'Bcc: ';
for($j=0;$j<count($this->bcc);$j++) {
if($j > 0) $this->emailheader .= ',';
$this->emailheader .=
$this->Validate_Email($this->bcc[$j]);
}
$this->emailheader .= "\r\n";
}
$this->emailheader .= 'MIME-Version: 1.0'."\r\n";
}
public function subject($subject) {
$this->subject = $subject;
}
public function text($text) {
$this->textheader .= 'Content-Type: multipart/alternative;
boundary="'.$this->textboundary.'"'."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary."\r\n";
$this->textheader .= 'Content-Type: text/plain; charset="'.$this-
>charset.'"'."\r\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-
printable'."\r\n\r\n";
$this->textheader .= strip_tags($text)."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary."\r\n";
$this->textheader .= 'Content-Type: text/html; charset="'.$this-
>charset.'"'."\r\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-
printable'."\r\n\r\n";
$this->textheader .= '<html><body>'.$text.'</body></html>'."\r\n
\r\n";
$this->textheader .= '--'.$this->textboundary.'--'."\r\n\r\n";
}
public function attachment($fileName) {
if(is_file($fileName)) {
$attachment_header = '--'.$this->emailboundary."\r\n" ;
$attachment_header .= 'Content-Type: application/octet-stream;
name="'.basename($fileName).'"'."\r\n";
$attachment_header .= 'Content-Transfer-Encoding:
base64'."\r\n";
$attachment_header .= 'Content-Disposition: attachment;
filename="'.basename($fileName).'"'."\r\n\r\n";
$file['inhalt'] =
fread(fopen($fileName,"rb"),filesize($fileName));
$file['inhalt'] = base64_encode($file['inhalt']);
$file['inhalt'] = chunk_split($file['inhalt'],72);
$this->attachment[] =
$attachment_header.$file['inhalt']."\r\n";
} else {
die('ERROR - Invalid Filename: "' . $fileName . "\r\n");
}
}
public function send() {
$this->makeMimeMail();
$header = $this->emailheader;
if(count($this->attachment)>0) {
$header .= 'Content-Type: multipart/mixed; boundary="'.$this-
>emailboundary.'"'."\r\n\r\n";
$header .= '--'.$this->emailboundary."\r\n";
$header .= $this->textheader;
if(count($this->attachment) > 0) $header .= implode("",$this-
>attachment);
$header .= '--'.$this->emailboundary.'--';
} else {
$header .= $this->textheader;
}
mail("$this->empfaenger",$this->subject,"",$header);
$this->deletememory();
}
public function deletememory() {
unset($this->emailheader);
unset($this->textheader);
unset($this->attachment);
}
}
?>