<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JScript: Отправка почты с помощью CDO.Message]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7232</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7232&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JScript: Отправка почты с помощью CDO.Message».]]></description>
		<lastBuildDate>Fri, 25 May 2012 06:43:46 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JScript: Отправка почты с помощью CDO.Message]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60472#p60472</link>
			<description><![CDATA[<p><strong>badik</strong><br />Спасибо.</p><div class="quotebox"><cite>badik пишет:</cite><blockquote><p>можно добавить параметр</p></blockquote></div><p>Там много чего можно добавить. Параметров много, а тех что указаны - достаточно для отправки большинства сообщений. Суммирую информацию на текущий момент. Для отправки почты по SMTP необходимо указывать следующие параметры:<br /></p><div class="quotebox"><blockquote><p>Основные параметры соединения:</p><p>&nbsp; &nbsp; sendusing: 2, <br />Отправка почты по сети, через внешние почтовые службы</p><p>&nbsp; &nbsp; smtpusessl: true, <br />Отправлять письма с шифрованием SSL</p><p>&nbsp; &nbsp; smtpauthenticate: 1, <br />Простая (basic) авторизация. Требуется указать логин и пароль. </p><p>&nbsp; &nbsp; smtpserver: host, <br />Адрес SMTP сервера</p><p>&nbsp; &nbsp; smtpserverport: port, <br />Порт, на котором будет производится отправка</p><p>&nbsp; &nbsp; smtpconnectiontimeout<br />Таймаут соединения при отправке больших сообщений. Значение по умолчанию 30с.</p><p>&nbsp; &nbsp; sendusername<br />Имя пользователя в форме login@hostname. Чаще всего этот параметр совпадает с адресом отправителя. Но не всегда. Например, для Yandex-а этот параметр соответствует первой части login, без @hostname. </p><p>&nbsp; &nbsp; sendpassword<br />Пароль пользователя sendusername</p></blockquote></div><p>В качестве дополнения - пример для Rambler. За основу взято описание на странице <a href="http://help.rambler.ru/article.html?s=102560&amp;id=102927">Общие настройки для почтовых клиентов</a></p><div class="codebox"><pre><code>
var username = &#039;login@rambler.ru&#039;;
var password = &#039;pasword&#039;;

var mailer = new Mail({
	sendusing: 2, 
	smtpusessl: true, 
	smtpauthenticate: 1, 
	smtpserver: &#039;mail.rambler.ru&#039;, 
	smtpserverport: 587, 

	sendusername: username, 
	sendpasword: password
});</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Fri, 25 May 2012 06:43:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60472#p60472</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: Отправка почты с помощью CDO.Message]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60471#p60471</link>
			<description><![CDATA[<p>Ещё один <strong>красивый</strong> скрипт от <strong>Rumata</strong></p><p>Для отправки больших файлов в опции можно добавить параметр <br />options.smtpconnectiontimeout=90 //(по умолчанию ~30 с)</p>]]></description>
			<author><![CDATA[null@example.com (badik)]]></author>
			<pubDate>Fri, 25 May 2012 05:38:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60471#p60471</guid>
		</item>
		<item>
			<title><![CDATA[JScript: Отправка почты с помощью CDO.Message]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60468#p60468</link>
			<description><![CDATA[<p>Захотелось поиграться с отправкой почты скриптом, без внешних утилит. Приглашаю всех заинтересованных и любопытствующих к тестированию. Критика и пожелания к расширению приветствуются. Кое-что получилось - почта отправляется, принимается. Можно прикреплять файлы, указывать различные параметры и дополнительные заголовки сообщений (уведомление о доставке, прочтении, важность письма и прочие). </p><p>Интерфейс прост - все писалось с упором на простоту использования. Так как это всего лишь обертка вокруг компонента, то не все возможности компонента реализованы в интерфейсе. Кое-то можно реализовать и вручную. Если будет интерес и модуль востребован, работы можно будет продолжить, а функционал компонента добавить в методы класса. Опять же с целью упрощения взаимодействия. </p><p>Также добавлены еще три обертки - для наиболее популярных у нас в России почтовых служб Mail.Ru, Yandex, и GMail. </p><p>Во всех примерах используется для отправки GMail. Аналогично работают и другие. Необходимо указать правильные параметры: авторизация, использование SSL и прочие. Для своих тестов замените username, password на реальные значения ваших почтовых ящиков, а также исправьте smtpserver, smtpserverport в случае использования вами другой службы, отличной от GMail. Значение recipient может быть таким же как и username. В таком случае письмо просто придет к вам же. </p><p><strong>Общий пример отправки почты. Используется GMail. Все параметры указаны явно. </strong><br /></p><div class="codebox"><pre><code>
// логин и пароль для авторизации на сервере gmail
// логин также используется в качестве поля From
var username = &#039;login@gmail.com&#039;;
var password = &#039;password&#039;;

// адрес получателя
var recepient = &#039;login@gmail.com&#039;;

var mailer = new Mail({
	sendusing: 2, 
	smtpusessl: true, 
	smtpauthenticate: 1, 
	smtpserver: &#039;smtp.gmail.com&#039;, 
	smtpserverport: 465, 
	sendusername: username, 
	sendpassword: password
});

mailer.send({
	from: username, 
	to: recepient, 
	subject: &#039;Тестовое письмо&#039;, 
	textbody: &#039;Это письмо отправлено скриптом через почтовую службу GMail&#039;
});</code></pre></div><p>.<br /><strong>То же самое. Используется обертка Mail.GMail</strong><br /></p><div class="codebox"><pre><code>
// логин и пароль для авторизации на сервере gmail
// логин также используется в качестве поля From
var username = &#039;login@gmail.com&#039;;
var password = &#039;password&#039;;

// адрес получателя
var recepient = &#039;login@gmail.com&#039;;

var mailer = new Mail.GMail({
	sendusername: username, 
	sendpassword: password
});

mailer.send({
	from: username, 
	to: recepient, 
	subject: &#039;Тестовое письмо&#039;, 
	textbody: &#039;Это письмо отправлено скриптом через почтовую службу GMail&#039;
});</code></pre></div><p>.<br /><strong>Отправка почты с прикрепленным файлом</strong><br /></p><div class="codebox"><pre><code>
// логин и пароль для авторизации на сервере gmail
// логин также используется в качестве поля From
var username = &#039;login@gmail.com&#039;;
var password = &#039;password&#039;;

// адрес получателя
var recepient = &#039;login@gmail.com&#039;;

var mailer = new Mail.GMail({
	sendusername: username, 
	sendpassword: password
});

var filename = &#039;C:\\Windows\\System32\\drivers\etc\\lmhosts.sam&#039;;
mailer.addAttachment(filename);

mailer.send({
	from: username, 
	to: recepient, 
	subject: &#039;Письмо с вложением&#039;, 
	textbody: &#039;К письму прикреплен один файл&#039;
});</code></pre></div><p>.<br /><strong>Исходный код без комментариев. </strong><br />Полный текст расположен по адресу <a href="http://code.google.com/p/jsxt/source/browse/trunk/js/win32/Mail.js">http://code.google.com/p/jsxt/source/br … 32/Mail.js</a><br /></p><div class="codebox"><pre><code>
//
// Mail.js
// Extension to simplify sending of e-mails via CDO.Message
//
// Copyright (c) 2012 by Ildar Shaimordanov
//

function Mail(options)
{
	this.driver = new ActiveXObject(&#039;CDO.Message&#039;);
	this.configure(options);
};

(function()
{

var fieldsUpdate = function(fields, prefix, options)
{
	for (var p in options) {
		if ( ! p || ! options.hasOwnProperty(p) ) {
			continue;
		}
		fields.Item(prefix + p) = options[p];
	}

	fields.Update();
};

Mail.prototype.configure = function(options)
{
	fieldsUpdate(
		this.driver.Configuration.Fields, 
		&#039;http://schemas.microsoft.com/cdo/configuration/&#039;, 
		options);
};

Mail.prototype.setMailHeaders = function(options)
{
	fieldsUpdate(
		this.driver.Fields, 
		&#039;urn:schemas:mailheader:&#039;, 
		options);
};

Mail.prototype.addAttachment = function(URL, mimetype, options)
{
	options = options || {};
	var attachment = this.driver.AddAttachment(URL, options.username, options.password);
	if ( mimetype ) {
		attachment.ContentMediaType = mimtype;
	}
};

Mail.prototype.prepareMessage = function(options)
{
	var driver = this.driver;

	for (var p in options) {
		if ( ! p || ! options.hasOwnProperty(p) ) {
			continue;
		}
		driver[p] = options[p];
	}
};

Mail.prototype.send = function(options)
{
	this.prepareMessage(options);
	this.driver.Send();
};

var prepareSmtpOptions = function(options, host, port)
{
	options = options || {};
	options.sendusing = 2;
	options.smtpusessl = true;
	options.smtpauthenticate = 1;
	options.smtpserver = host;
	options.smtpserverport = port;
	return options;
};

Mail.MailRu = function(options)
{
	return new Mail(prepareSmtpOptions(options, &#039;smtp.mail.ru&#039;, 25));
};

Mail.Yandex = function(options)
{
	return new Mail(prepareSmtpOptions(options, &#039;smtp.yandex.ru&#039;, 465));
};

Mail.GMail = function(options)
{
	return new Mail(prepareSmtpOptions(options, &#039;smtp.gmail.com&#039;, 465));
};

})();</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 24 May 2012 19:34:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60468#p60468</guid>
		</item>
	</channel>
</rss>
