<?php
function sendmail($ps_to, $ps_subject, $ps_body) {
$props = new Java('java.util.Properties');
$props->setProperty('mail.transport.protocol', 'smtp');
$props->put('mail.smtp.allow8bitmime', "true");
$props->setProperty('mail.smtp.host', ini_get('SMTP'));
$props->setProperty('mail.smtp.port', ini_get('smtp_port'));
// $props->setProperty('mail.smtp.user', ini_get('smtp_username'));
// $props->setProperty('mail.smtp.password', ini_get('smtp_password'));
if ('' !== ini_get('smtp_password')) {
$props->setProperty('mail.smtp.auth', 'true');
}
$props->setProperty('mail.from', ini_get('sendmail_from'));
$mailSession = java_class('javax.mail.Session')->getInstance($props, null); //javax.mail.Session
// $mailSession->setDebug(true);
$transport = $mailSession->getTransport();
$message = new Java('javax.mail.internet.MimeMessage', $mailSession);
$message->setFrom(new Java('javax.mail.internet.InternetAddress', ini_get('sendmail_from')));
//необходимо для русского языка в "теме" письма (подошло также UTF-8):
$message->setSubject($ps_subject, 'Windows-1251'); // bluebottle.com only renders W1251 right
//или:
//message.setText(m_appResources.getString("message.body"), "UTF-8");
$message->setContent($ps_body, 'text/plain; charset=utf-8');
//
// String Html = ...;
// String DefaultCharSet=
// MimeUtility.getDefaultJavaCharset();
// msg.setText(MimeUility.encodeText(Html,DefaultCharSet,"B"));
// msg.send();
//
// Q short for Quoted Printable
// B short for Base64
//
$addrTo = new Java('javax.mail.internet.InternetAddress', $ps_to);
//для русского языка в имени получателя (аналогично в имени отправителя):
// try {
// $addrTo->setPersonal('Иван Левашев', 'utf-8');
// } catch (java.io.UnsupportedEncodingException uee) {
// System.out.println(uee.getMessage());
// }
$message->addRecipient(java_class('java.lang.Class')->forName('javax.mail.Message$RecipientType')->getField('TO')->get(null), $addrTo);
// Проверка задания натурального заголовка (работает, проще всего увидеть,задав mailSession.setDebug(true)):
// $message->setHeader("X-Mailer", "org.sukhoi.mail"); //произвольное указание почтовой программы
$message->setSentDate(new Java('java.util.Date'));
$message->setHeader('Content-Transfer-Encoding', 'base64'); //должно быть после setText()
$transport->connect(ini_get('smtp_username'), ini_get('smtp_password'));
//нужен поток, т.к. возможна долгая операция.
//сравнить с send();
//разрешить частичную посылку, если адресов много,чтоб при одном неправильном адресе
//не прекращало работу.
$transport->sendMessage($message,
$message->getRecipients(java_class('java.lang.Class')->forName('javax.mail.Message$RecipientType')->getField('TO')->get(null)));
// //для отладки - список заголовков:
// Enumeration msgHeaders = message.getAllHeaders();
// System.out.println("HEADERS");
// while (msgHeaders.hasMoreElements()) {
// Header header = (Header) msgHeaders.nextElement();
// System.out.println(header.getName() + "=" + header.getValue());
// }
$transport->close();
}
?>
function sendmail($ps_to, $ps_subject, $ps_body) {
$props = new Java('java.util.Properties');
$props->setProperty('mail.transport.protocol', 'smtp');
$props->put('mail.smtp.allow8bitmime', "true");
$props->setProperty('mail.smtp.host', ini_get('SMTP'));
$props->setProperty('mail.smtp.port', ini_get('smtp_port'));
// $props->setProperty('mail.smtp.user', ini_get('smtp_username'));
// $props->setProperty('mail.smtp.password', ini_get('smtp_password'));
if ('' !== ini_get('smtp_password')) {
$props->setProperty('mail.smtp.auth', 'true');
}
$props->setProperty('mail.from', ini_get('sendmail_from'));
$mailSession = java_class('javax.mail.Session')->getInstance($props, null); //javax.mail.Session
// $mailSession->setDebug(true);
$transport = $mailSession->getTransport();
$message = new Java('javax.mail.internet.MimeMessage', $mailSession);
$message->setFrom(new Java('javax.mail.internet.InternetAddress', ini_get('sendmail_from')));
//необходимо для русского языка в "теме" письма (подошло также UTF-8):
$message->setSubject($ps_subject, 'Windows-1251'); // bluebottle.com only renders W1251 right
//или:
//message.setText(m_appResources.getString("message.body"), "UTF-8");
$message->setContent($ps_body, 'text/plain; charset=utf-8');
//
// String Html = ...;
// String DefaultCharSet=
// MimeUtility.getDefaultJavaCharset();
// msg.setText(MimeUility.encodeText(Html,DefaultCharSet,"B"));
// msg.send();
//
// Q short for Quoted Printable
// B short for Base64
//
$addrTo = new Java('javax.mail.internet.InternetAddress', $ps_to);
//для русского языка в имени получателя (аналогично в имени отправителя):
// try {
// $addrTo->setPersonal('Иван Левашев', 'utf-8');
// } catch (java.io.UnsupportedEncodingException uee) {
// System.out.println(uee.getMessage());
// }
$message->addRecipient(java_class('java.lang.Class')->forName('javax.mail.Message$RecipientType')->getField('TO')->get(null), $addrTo);
// Проверка задания натурального заголовка (работает, проще всего увидеть,задав mailSession.setDebug(true)):
// $message->setHeader("X-Mailer", "org.sukhoi.mail"); //произвольное указание почтовой программы
$message->setSentDate(new Java('java.util.Date'));
$message->setHeader('Content-Transfer-Encoding', 'base64'); //должно быть после setText()
$transport->connect(ini_get('smtp_username'), ini_get('smtp_password'));
//нужен поток, т.к. возможна долгая операция.
//сравнить с send();
//разрешить частичную посылку, если адресов много,чтоб при одном неправильном адресе
//не прекращало работу.
$transport->sendMessage($message,
$message->getRecipients(java_class('java.lang.Class')->forName('javax.mail.Message$RecipientType')->getField('TO')->get(null)));
// //для отладки - список заголовков:
// Enumeration msgHeaders = message.getAllHeaders();
// System.out.println("HEADERS");
// while (msgHeaders.hasMoreElements()) {
// Header header = (Header) msgHeaders.nextElement();
// System.out.println(header.getName() + "=" + header.getValue());
// }
$transport->close();
}
?>