Hivext Community
Февраль 23, 2012, 12:55:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Добро пожаловать в сообщество разработчиков Hivext.
 
Wiki   IDE   Console      Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: PHP + Java Scripting = Отправка сообщений через gmail  (Прочитано 2230 раз)
Ruslan
Administrator
Sr. Member
*****

Авторитет: 6
Сообщений: 400



Просмотр профиля Email
« : Февраль 18, 2011, 02:27:35 »

В примере демонстрируется возможность отправки сообщений, с вложенным изображением, используя gmail аккаунт.

Примере используется PHP + Java код, написанный в сервисе скриптинга


Создадим базовый скрипт на языке Java, который отправляет письма через gmail. Назовем его JavaMailSender.

Код
java:
 
import java.net.URL;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.URLDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.net.MalformedURLException;
 
public class JavaMailSender{
 
   private String GMAIL_SMTP_AUTH_USER = "tester@hivext.net";
   private String GMAIL_SMTP_AUTH_PWD = "tester";
   private String GMAIL_SMTP_HOST = "smtp.gmail.com";
   private int GMAIL_SMTP_PORT = 465;
   private String GMAIL_FROM_ADDRESS = "Tester@Hivext.Tech <" + GMAIL_SMTP_AUTH_USER + ">";
 
 
   public void sendFromGmail(String to) throws MessagingException, MalformedURLException {
           Properties props = new Properties();
           Session session = Session.getDefaultInstance(props);
           MimeMessage msg = new MimeMessage(session);
           msg.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
           msg.setSubject("Test Message", "UTF-8");
 
           msg.setFrom(new InternetAddress(GMAIL_FROM_ADDRESS));
           msg.setSentDate(new Date());
 
           String img = "http://www.ece.ubc.ca/~hct/research/hive496/hive.jpg";
           String body = "Test Hive mesage <img src=\""+img+"\">";
           Multipart mp = new MimeMultipart("related");
           BodyPart htmlPart = new MimeBodyPart();
           htmlPart.setContent(body, "text/html; charset=utf8");
           mp.addBodyPart(htmlPart);
 
 
           BodyPart imgPart = new MimeBodyPart();
           DataSource source = new URLDataSource(new URL(img));
           imgPart.setDataHandler(new DataHandler(source));
           imgPart.setHeader("Content-type", "image/jpg; name=\"hive.jpg\"");
           imgPart.setHeader("Content-Location", img);
           mp.addBodyPart(imgPart);
 
           msg.setContent(mp);
           msg.setSentDate(new Date());
           msg.saveChanges();
 
           Transport transport = session.getTransport("smtps");
           transport.connect(GMAIL_SMTP_HOST, GMAIL_SMTP_PORT, GMAIL_SMTP_AUTH_USER, GMAIL_SMTP_AUTH_PWD);
           transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
           transport.close();
   }
}

Указанный скрипт использует стандартный JavaMailAPI.
Закачаем через FTP файл библиотеки mail.jar в каталог /lib в директории с ресурсами. После загрузки платформа автоматически подключит его к проекту.



Теперь будет использовать этот скрипт в PHP через импорт ранее созданного скрипта

Код
php:
 
<?php
   new com.hivext.scripting.JavaMailSender()->sendFromGmail("my_email@gmail.com");
   return "success";
?>
« Последнее редактирование: Февраль 18, 2011, 06:03:00 от Ruslan » Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap Valid XHTML 1.0! Valid CSS!