$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$email = $_REQUEST['email'];
$meeting_date = $_REQUEST['meeting_date']; //mysql format
$meeting_name = $_REQUEST['meeting_name'];
$meeting_duration = $_REQUEST['meeting_duration'];
//returns true or false
$result = sendIcalEmail($firstname,$lastname,$email,$meeting_date,$meeting_name,$meeting_duration);
//display result
if($result) {
echo "Email sent successfully.";
} else {
echo "A problem occured sending email";
}
function sendIcalEmail ($firstname,$lastname,$email,$meeting_date,$meeting_name,$meeting_duration) {
require_once('Mail.php');
require_once('Mail/mime.php');
// Data about the sender & email
$from_name = "Marcello";
$from_address = "m@mail.co.uk";
$subject = "Event"; //Doubles as email subject and meeting subject in calendar
$meeting_description = "Event\n\n";
$meeting_location = "OK"; //Where will your meeting take place
// SMTP details
$smtp_params = array (
"host" => "auth.smtp.1and1.co.uk",
"port" => 25,
"auth" => TRUE,
"username" => "pdfphp@mail.co.uk",
"password" => "****",
"debug" => TRUE
);
//Convert MYSQL datetime and construct iCal start, end and issue dates
$meetingstamp = strtotime($meeting_date . " UTC");
$dtstart= gmdate("Ymd\THis\Z",$meetingstamp);
$dtend= gmdate("Ymd\THis\Z",$meetingstamp+$meeting_duration);
$todaystamp = gmdate("Ymd\THis\Z");
//Create unique identifier
$cal_uid = date('Ymd').'T'.date('His')."-".rand()."@mail.co.uk";
// Build sender/recipient in the form PEAR::Mail wants them
$sender = "$from_address";
$recipient = "$email";
//Create Email Headers
$headers = array (
'From' => $sender,
'Reply-To' => $sender,
'Return-Path' => $sender,
'Subject' => $subject
);
//Create Email Body (HTML)
$bodyhtml = "<html>\r\n<body>\r\n<p>Dear $firstname $lastname,</p>\r\n<p>Here is my HTML Email / Used for Meeting Description</p>\r\n</body>\r\n</html>";
//Create ICAL Content (Google rfc 2445 for details and examples of usage)
$ical = "BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
ORGANIZER:MAILTO:$from_address
DTSTART:$dtstart
DTEND:$dtend
LOCATION:$meeting_location
TRANSP:OPAQUE
SEQUENCE:0
UID:$cal_uid
DTSTAMP:$todaystamp
DESCRIPTION:$meeting_description
SUMMARY:$subject
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR";
// Create the Mime message object
$mime = new Mail_mime('\r\n');
// Add the HTML to the object
$mime->setHTMLBody($bodyhtml);
// Add the attachment
$file_name = "ok.ics";
$content_type = "text/calendar";
$mime->addAttachment ($ical, $content_type, $file_name, 0);
// Get the MIME message
$body = $mime->get();
$headers = $mime->headers($headers);
// Create an SMTP object
$mail =& Mail::factory("smtp", $smtp_params);
// Send the message
echo $mail->send($recipient, $headers, $body);
//return ($mail->send($recipient, $headers, $body) === 1) ? TRUE : FALSE;
}
Return:
DEBUG: Recv: 220 auth.smtp.oneandone.co.uk (mrbap2) Welcome to
Nemesis ESMTP server DEBUG: Send: EHLO localhost DEBUG: Recv: 250-
auth.smtp.oneandone.co.uk DEBUG: Recv: 250-STARTTLS DEBUG: Recv: 250-AUTH
LOGIN PLAIN DEBUG: Recv: 250-AUTH=LOGIN PLAIN DEBUG: Recv: 250-
PIPELINING DEBUG: Recv: 250-SIZE 120000000 DEBUG: Recv: 250 HELP DEBUG:
Send: STARTTLS DEBUG: Recv: 220 OK DEBUG: Send: EHLO localhost DEBUG:
Recv: 250-auth.smtp.oneandone.co.uk DEBUG: Recv: 250-AUTH LOGIN PLAIN
DEBUG: Recv: 250-AUTH=LOGIN PLAIN DEBUG: Recv: 250-PIPELINING DEBUG:
Recv: 250-SIZE 120000000 DEBUG: Recv: 250 HELP DEBUG: Send: AUTH LOGIN
DEBUG: Recv: 334 VXNlcm5hbWU6 DEBUG: Send:
cGRmcGhwQGlkc2Nhbi5jby51aw== DEBUG: Recv: 334 UGFzc3dvcmQ6 DEBUG:
Send: MTIzY2hhbmdl DEBUG: Recv: 235 Authentication successful DEBUG: Send:
MAIL FROM: DEBUG: Recv: 250 OK DEBUG: Send: RCPT TO: DEBUG: Recv: 250 OK
DEBUG: Send: DATA DEBUG: Recv: 354 Enter mail, end with "." on a line by itself
DEBUG: Send: MIME-Version: 1.0 Content-Type: multipart/mixed;\r\n
boundary="=_db98f3c5d7b242b7d03e609ac368e218" From: m@mail.co.uk
Reply-To: m@mail.co.uk Return-Path: m@mail.co.uk Subject: Test --
=_db98f3c5d7b242b7d03e609ac368e218\r\nContent-Transfer-Encoding:
quoted-printable\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n\r\n\r\n
Dear test11 test,
\r\n
Here is my HTML Email / Used for Meeting Description
\r\n\r\n\r\n--=_db98f3c5d7b242b7d03e609ac368e218\r\nContent-Transfer-Encoding: base64\r\nContent-Type: text/calendar;\r\n name=ok.ics\r\nContent-Disposition: attachment;\r\n filename=ok.ics\r\n\r\nQkVHSU46VkNBTEVOREFSDQpQUk9ESUQ6LS8vTWljcm9zb2Z
0IENvcnBvcmF0aW9uLy9PdXRsb29r\r\nIDExLjAgTUlNRURJUi8vRU4gDQpWRVJTSU9
OOjIuMCANCk1FVEhPRDpQVUJMSVNIIA0KQkVHSU46\r\nVkVWRU5UIA0KT1JHQU5J
WkVSOk1BSUxUTzptQGlkc2Nhbi5jby51ayANCkRUU1RBUlQ6MjAxMTEy\r\nMzFUMTM
wMDAwWiANCkRURU5EOjIwMTExMjMxVDE0MDAwMFogDQpMT0NBVElPTjpCYW5rIA
0KVFJB\r\nTlNQOk9QQVFVRSANClNFUVVFTkNFOjAgDQpVSUQ6MjAxMTAzMTdUMTg0
NTMwLTE1OTY2QGlkc2Nh\r\nbi5jby51ayANCkRUU1RBTVA6MjAxMTAzMTdUMTc0NTM
wWiANCkRFU0NSSVBUSU9OOklEc2NhbiBT\r\ndGFuZGluZyBPcmRlcgoKIA0KU1VNTUF
SWTpTdGFuZGluZyBPcmRlciANClBSSU9SSVRZOjUgDQpD\r\nTEFTUzpQVUJMSUMgDQ
pFTkQ6VkVWRU5UIA0KRU5EOlZDQUxFTkRBUg==\r\n\r\n--
=_db98f3c5d7b242b7d03e609ac368e218--\r\n . DEBUG: Recv: 250 Message
0LjLuJ-1PUExp3Jt9-00dN2a accepted by mrbap2.kundenserver.de DEBUG: Send:
QUIT DEBUG: Recv: 221 OK 1A problem occured sending email
And the email with only a noname file attached (without extension)
--=_db98f3c5d7b242b7d03e609ac368e218\r\nContent-Transfer-Encoding:
quoted-printable\r\nContent-Type: text/html; charset=ISO-8859-
1\r\n\r\n<html>\r\n<body>\r\n<p>Dear test11 test,</p>\r\n<p>Here is my HTML
Email / Used for Meeting Description</p>\r\n</body>\r\n</html>\r\n--
=_db98f3c5d7b242b7d03e609ac368e218\r\nContent-Transfer-Encoding:
base64\r\nContent-Type: text/calendar;\r\n name=ok.ics\r\nContent-Disposition:
attachment;\r\n
filename=ok.ics\r\n\r\nQkVHSU46VkNBTEVOREFSDQpQUk9ESUQ6LS8vTWljcm9zb2Z
0IENvcnBvcmF0aW9uLy9PdXRsb29r\r\nIDExLjAgTUlNRURJUi8vRU4gDQpWRVJTSU9
OOjIuMCANCk1FVEhPRDpQVUJMSVNIIA0KQkVHSU46\r\nVkVWRU5UIA0KT1JHQU5J
WkVSOk1BSUxUTzptQGlkc2Nhbi5jby51ayANCkRUU1RBUlQ6MjAxMTEy\r\nMzFUMTM
wMDAwWiANCkRURU5EOjIwMTExMjMxVDE0MDAwMFogDQpMT0NBVElPTjpCYW5rIA0
KVFJB\r\nTlNQOk9QQVFVRSANClNFUVVFTkNFOjAgDQpVSUQ6MjAxMTAzMTdUMTg0NT
MwLTE1OTY2QGlkc2Nh\r\nbi5jby51ayANCkRUU1RBTVA6MjAxMTAzMTdUMTc0NTMw
WiANCkRFU0NSSVBUSU9OOklEc2NhbiBT\r\ndGFuZGluZyBPcmRlcgoKIA0KU1VNTUFS
WTpTdGFuZGluZyBPcmRlciANClBSSU9SSVRZOjUgDQpD\r\nTEFTUzpQVUJMSUMgDQp
FTkQ6VkVWRU5UIA0KRU5EOlZDQUxFTkRBUg==\r\n\r\n--
=_db98f3c5d7b242b7d03e609ac368e218--\r\n