Giter VIP home page Giter VIP logo

mailhog-client's Introduction

Mailhog API Client for PHP Packagist Version

A simple PHP (7.2+) client for Mailhog.

Design Goals

  • As little dependencies as possible
  • Simple single client for both Mailhog V1 API as well as Mailhog V2 API
  • Integration tests on all endpoints, both happy path and failure paths

Installation

This package does not require any specific HTTP client implementation, but is based on HTTPlug, so you can inject your own HTTP client of choice. So you when you install this library make sure you either already have an HTTP client installed, or install one at the same time as installing this library, otherwise installation will fail.

composer require rpkamp/mailhog-client <your-http-client-of-choice>

For more information please refer to the HTTPlug documentation for Library Users.

Usage

<?php

use rpkamp\Mailhog\MailhogClient;

$client = new MailhogClient(new SomeHttpClient(), new SomeRequestFactory(), 'http://my.mailhog.host:port/');

Where SomeHttpClient is a class that implements Http\Client\HttpClient from HTTPlug and SomeMessageFactory is a class that implements Http\Message\RequestFactory from HTTPlug, and my.mailhog.host is the hostname (or IP) where mailhog is running, and port is the port where the mailhog API is running (by default 8025).

Run tests

Make sure you have Mailhog running and run:

make test

Running Mailhog for tests

You can either run your own instance of Mailhog or use the provided Dockerfile to run one for you. To run Mailhog with Docker make sure you have Docker insalled and run:

docker-compose up -d

Mailhog ports for tests

To prevent port collissions with any other Mailhog instances while testing the tests expect Mailhog to listen to SMTP on port 2025 (instead of the default 1025) and to HTTP traffic on port 9025 (instead of the default 8025).

If you want different ports you can copy phpunit.xml.dist to phpunit.xml and change the port numbers in the environment variables therein.

mailhog-client's People

Contributors

rpkamp avatar 4c0n avatar xico42 avatar sebtm avatar wesnick avatar nervo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.