Как разработать и протестировать приложение, которое отправляет электронные письма (без заполнения чьего-либо почтового ящика тестовыми данными)? [закрыто]

Резюме this Javascript:

  • Значение this определяется тем, как функция вызывается не, где она была создана!
  • Обычно значение из this определяется Объектом, который остается от точки. (window в глобальном пространстве)
  • В случае прослушивателей значение this относится к элементу DOM, на котором было вызвано событие.
  • Когда функция вызывается с помощью new ключевое слово значение this относится к вновь созданному объекту
  • Вы можете управлять значением this с помощью функций: call, apply, bind

Пример:

let object = {
  prop1: function () {console.log(this);}
}

object.prop1();   // object is left of the dot, thus this is object

const myFunction = object.prop1 // We store the function in the variable myFunction

myFunction(); // Here we are in the global space
              // myFunction is a property on the global object
              // Therefore it logs the window object
              
             

Пример прослушивателей событий:

document.querySelector('.foo').addEventListener('click', function () {
  console.log(this);   // This refers to the DOM element the eventListener was invoked from
})


document.querySelector('.foo').addEventListener('click', () => {
  console.log(this);  // Tip, es6 arrow function don't have their own binding to the this v
})                    // Therefore this will log the global object
.foo:hover {
  color: red;
  cursor: pointer;
}
<div class="foo">click me</div>

Пример конструктора:

function Person (name) {
  this.name = name;
}

const me = new Person('Willem');
// When using the new keyword the this in the constructor function will refer to the newly created object

console.log(me.name); 
// Therefore, the name property was placed on the object created with new keyword.

128
задан Patrick McElhaney 18 April 2013 в 19:08
поделиться

8 ответов

Я столкнулся с той же проблемой несколько недель назад и написал следующее: http://smtp4dev.codeplex.com

Совместимый с Windows 7 / Vista / XP / 2003/2010 фиктивный SMTP-сервер. Сидит в системном трее и не доставляет полученные сообщения. Полученные сообщения можно быстро просмотреть, сохранить и проверить источник / структуру. Полезно для тестирования / отладки программного обеспечения, генерирующего электронную почту.

84
ответ дан 24 November 2019 в 00:39
поделиться

Dumbster might be what you want then. It's an open source fake SMTP server written in Java. It takes the place of a real SMTP server, so you can test your app in a realistic setting, without having any code stubbed out. You can make sure the right messages are sent to the SMTP server without actually delivering messages.

14
ответ дан 24 November 2019 в 00:39
поделиться

Это похоже на smtp4dev, за исключением того, что он реализован в java, поэтому он работает для разработчиков, отличных от Windows.

http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp

9
ответ дан 24 November 2019 в 00:39
поделиться

Также есть Papercut и Neptune , жаль, что ни один из них не может быть запущен портативным способом.

6
ответ дан 24 November 2019 в 00:39
поделиться

Теперь существует веб-версия Papercut.

Также мне подходит версия, основанная на приложении.

18
ответ дан 24 November 2019 в 00:39
поделиться

, если вы используете java, я бы использовал Wiser : Wiser - это простой SMTP-сервер, который можно использовать для приложений модульного тестирования, отправляющих почту.

5
ответ дан 24 November 2019 в 00:39
поделиться

Несколько лет назад я наткнулся на следующее решение для платформы .NET.

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory">
      <specifiedPickupDirectory pickupDirectoryLocation="C:\TestMailMessages\" />
    </smtp>
  </mailSettings>
</system.net>

Просто поместите приведенный выше код в App.config или Web.config. Теперь при отправке сообщения оно будет храниться как файл в директории, которую вы указали как "pickupDirectoryLocation". Работает просто замечательно.

73
ответ дан 24 November 2019 в 00:39
поделиться

Вы также можете использовать netDumbster.

http://netdumbster.codeplex.com/

3
ответ дан 24 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: