Send beautiful HTML emails with Laravel

Overview

Beautymail for Laravel

Beautymail makes it super easy to send beautiful responsive HTML emails. It's made for things like:

  • Welcome emails
  • Password reminders
  • Invoices
  • Data exports

If you're on Laravel 4, use the 1.x branch.

Index:

Templates

There are tons of great looking HTML email templates out there. Campaign Monitor and Mailchimp has released hundreds for free. It is pretty simple to adapt a template to Beautymail. If you do, please send a PR.

Widgets by Campaign Monitor:

Widget Template

Minty by Stamplia:

Widget Template

Sunny

Widget Template

Installation

Add the package to your composer.json by running:

composer require snowfire/beautymail

When it's installed, publish assets to your public folder

php artisan vendor:publish --provider="Snowfire\Beautymail\BeautymailServiceProvider"

Configure your settings such as logo url and social links in config/beautymail.php

Send your first Beauty mail

Add this to your routes/web.php

Route::get('/test', function()
{
	$beautymail = app()->make(Snowfire\Beautymail\Beautymail::class);
	$beautymail->send('emails.welcome', [], function($message)
	{
		$message
			->from('[email protected]')
			->to('[email protected]', 'John Smith')
			->subject('Welcome!');
	});

});

Now create resources/views/emails/welcome.blade.php

@extends('beautymail::templates.widgets')

@section('content')

	@include('beautymail::templates.widgets.articleStart')

		<h4 class="secondary"><strong>Hello World</strong></h4>
		<p>This is a test</p>

	@include('beautymail::templates.widgets.articleEnd')


	@include('beautymail::templates.widgets.newfeatureStart')

		<h4 class="secondary"><strong>Hello World again</strong></h4>
		<p>This is another test</p>

	@include('beautymail::templates.widgets.newfeatureEnd')

@stop

That's it!

Options

Template: Widgets

To change colours for the different segments, pass a colour variable:

@include('beautymail::templates.widgets.articleStart', ['color' => '#0000FF'])

Minty template example

@extends('beautymail::templates.minty')

@section('content')

	@include('beautymail::templates.minty.contentStart')
		<tr>
			<td class="title">
				Welcome Steve
			</td>
		</tr>
		<tr>
			<td width="100%" height="10"></td>
		</tr>
		<tr>
			<td class="paragraph">
				This is a paragraph text
			</td>
		</tr>
		<tr>
			<td width="100%" height="25"></td>
		</tr>
		<tr>
			<td class="title">
				This is a heading
			</td>
		</tr>
		<tr>
			<td width="100%" height="10"></td>
		</tr>
		<tr>
			<td class="paragraph">
				More paragraph text.
			</td>
		</tr>
		<tr>
			<td width="100%" height="25"></td>
		</tr>
		<tr>
			<td>
				@include('beautymail::templates.minty.button', ['text' => 'Sign in', 'link' => '#'])
			</td>
		</tr>
		<tr>
			<td width="100%" height="25"></td>
		</tr>
	@include('beautymail::templates.minty.contentEnd')

@stop

Ark template example

@extends('beautymail::templates.ark')

@section('content')

    @include('beautymail::templates.ark.heading', [
		'heading' => 'Hello World!',
		'level' => 'h1'
	])

    @include('beautymail::templates.ark.contentStart')

        <h4 class="secondary"><strong>Hello World</strong></h4>
        <p>This is a test</p>

    @include('beautymail::templates.ark.contentEnd')

    @include('beautymail::templates.ark.heading', [
		'heading' => 'Another headline',
		'level' => 'h2'
	])

    @include('beautymail::templates.ark.contentStart')

        <h4 class="secondary"><strong>Hello World again</strong></h4>
        <p>This is another test</p>

    @include('beautymail::templates.ark.contentEnd')

@stop

Sunny template example

@extends('beautymail::templates.sunny')

@section('content')

    @include ('beautymail::templates.sunny.heading' , [
        'heading' => 'Hello!',
        'level' => 'h1',
    ])

    @include('beautymail::templates.sunny.contentStart')

        <p>Today will be a great day!</p>

    @include('beautymail::templates.sunny.contentEnd')

    @include('beautymail::templates.sunny.button', [
        	'title' => 'Click me',
        	'link' => 'http://google.com'
    ])

@stop

Lumen support

In order to get this working on Lumen follow the installation instructions except for the artisan vendor:publish command, since Lumen does not provide this command. Instead you have to copy the assets folder from vendor/snowfire/beautymail/public/ to the public folder in your Lumen project manually.

Make sure to also put the beautymail.php config file in the config folder (default available in src/config/settings.php)

Enable mailing in Lumen

After this you will need to install and configure illuminate/mailer with:

composer require illuminate/mail

and add this to your bootstrap/app.php:

$app->withFacades();
$app->register(App\Providers\AppServiceProvider::class);

See this blog post for more details and how to use different mail libraries in lumen:

Configure Beautymail classes and configuration parameters

In order to get Beautymail working on Lumen you need to add the following to your bootstrap/app.php in order to resolve missing config files, parameters and classes (before you register BeautymailServiceProvider):

// Provide required path variables
$app->instance('path.config', env("STORAGE_DIR", app()->basePath()) . DIRECTORY_SEPARATOR . 'config');
$app->instance('path.public', env("STORAGE_DIR", app()->basePath()) . DIRECTORY_SEPARATOR . 'public');

// Enable config for beautymail
$app->configure('beautymail');

// Provide class alliases to resolve Request and Config
class_alias(\Illuminate\Support\Facades\Request::class, "\Request");
class_alias(\Illuminate\Support\Facades\Config::class, "\Config");

Start using Beautymail

Congratulations, you can know start using bBautmail in Lumen. See: Send your first Beauty mail on what to do next.

Comments
  • Class App\Http\Controllers\Snowfire\Beautymail\Beautymail does not exist

    Class App\Http\Controllers\Snowfire\Beautymail\Beautymail does not exist

    I have added in provider array but getting error ReflectionException in Container.php line 736: Class App\Http\Controllers\Snowfire\Beautymail\Beautymail does not exist

    opened by subzero355 17
  • Class 'Snowfire\Beautymail\BeautymailServiceProvider' not found

    Class 'Snowfire\Beautymail\BeautymailServiceProvider' not found

    Not sure if I am being extremely silly or not, but been a tiring couple of days.

    Similar issue as here: https://github.com/Snowfire/Beautymail/issues/3

    I have done:

    composer require snowfire/beautymail dev-master
    Added Snowfire\Beautymail\BeautymailServiceProvider::class, to providers in config/app.php
    

    And attempted:

    php artisan vendor:publish --provider="Snowfire\Beautymail\BeautymailServiceProvider"
    

    Which results in:

    [Symfony\Component\Debug\Exception\FatalThrowableError]
      Class 'Snowfire\Beautymail\BeautymailServiceProvider' not found
    

    I tried composer update, which results in:

    
      [Symfony\Component\Debug\Exception\FatalThrowableError]
      Class 'Snowfire\Beautymail\BeautymailServiceProvider' not found
    
    Script php artisan optimize handling the post-update-cmd event returned with error code 1
    

    It is not a new project I am working on, and it is entirely possible someone already installed this before, as there is a beautymail.php in the config folder.

    However still not sure why I am then getting composer update errors still. Any feedback appreciated.

    opened by JamieAmstel 12
  • PHP error on class Beautymail.php line 7

    PHP error on class Beautymail.php line 7

    I just upgraded laravel from 5.4 to 5.5.3 but when I run php artisan SendNotification:notifications on command line I got this.

    PHP Fatal error:  Class Snowfire\Beautymail\Beautymail contains 2 abstract methods and must th
    erefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Mail\Mai
    ler::to, Illuminate\Contracts\Mail\Mailer::bcc) in C:\laragon\www\liz\vendor\snowfire\beautyma
    il\src\Snowfire\Beautymail\Beautymail.php on line 7
    

    I am making notification in the background process, and you package break on 5.5.3 Laravel version, it's working on laravel 5.4

    opened by filjoseph1989 11
  • How do we create new templates?

    How do we create new templates?

    I know I could just create a blade template and extend it, but I would like to know how you would like us to extend and create templates. Since there is zero documentation on this subject.

    opened by xitude 11
  • Support for Lumen?

    Support for Lumen?

    Any chance support for Lumen could be added?

    Presently, running the vendor:publish command results in the following fatal exception:

    [Symfony\Component\Debug\Exception\FatalErrorException] Call to undefined function Snowfire\Beautymail\config_path() in vendor\snowfire\beautymail\src\Snowfire\Beautymail\BeautymailServiceProvider.php on line 24

    opened by mikerockett 8
  • Mails content is empty

    Mails content is empty

    If I try to send a mail with this package (or with the views provided actually) the mail content turns up empty. I have used the example from the readme.

    opened by syphernl 8
  • Pelago\Emogrifier dependency now broken

    Pelago\Emogrifier dependency now broken

    For one you have it set to '@dev'.

    They just released a new version a couple of hours ago, and removed a function that your package was using.

    In CssInlinerPlugin.php line 18:
                                                                                 
      Call to undefined method Pelago\Emogrifier::disableInvisibleNodeRemoval()  
    

    You'll have to set that dependency to use "pelago\emogrifie": "2.2.0", otherwise now anyone using your package will have a broken install.

    opened by benjamin-ndc 7
  • InvalidArgumentException: Only mailables may be queued.

    InvalidArgumentException: Only mailables may be queued.

    I get the feeling I'm missing something: Beautymail is a drop-in replacement for Mail, isn't it? So queueing should work without any issues.

    This is Laravel 5.5 running on Ubuntu 14.04, PHP 7.0.

    When running $beautymail->queue('emails.welcome', [], new NewUser($member));, (NewUser being a mailable, which implements ShouldQueue), I get the error InvalidArgumentException: Only mailables may be queued.

    Swapping out Beautymail for Mail fixes the issue.

    Mailer class:

    namespace App\Mail;
    
    use Illuminate\Bus\Queueable;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Contracts\Queue\ShouldQueue;
    use App\Models\Member;
    
    class NewUser extends Mailable implements ShouldQueue
    {
        use Queueable, SerializesModels;
    
        public $member;
    
        /**
         * Create a new message instance.
         *
         * @return void
         */
        public function __construct(Member $member)
        {
            $this->member = $member;
        }
    
        /**
         * Build the message.
         *
         * @return $this
         */
        public function build()
        {
            return $this->from('[email protected]')
                ->to($this->member->email)
                ->view('emails.welcome')
                ->text('emails.welcome_plain')
                ->with(
                    [
                        'testOne' => '1',
                        'testTwo' => '2',
                    ])
                ->attach('/var/git_repos/folder/account_logos_test/2_logo_medium.png', [
                        'as' => '2_logo_medium.png',
                        'mime' => 'image/png',
                ]);
        }
    }
    

    Stack trace:

    InvalidArgumentException: Only mailables may be queued. in file /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php on line 354
    Stack trace:
      1. InvalidArgumentException-&gt;() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php:354
      2. Illuminate\Mail\Mailer-&gt;queue() /var/www/folder/releases/ba5a5f0c/vendor/snowfire/beautymail/src/Snowfire/Beautymail/Beautymail.php:90
      3. Snowfire\Beautymail\Beautymail-&gt;queue() /var/www/folder/releases/ba5a5f0c/app/Models/Member.php:542
      4. App\Models\Member-&gt;sendEmail() /var/www/folder/releases/ba5a5f0c/app/Http/Controllers/Api/EmailController.php:41
      5. App\Http\Controllers\Api\EmailController-&gt;send() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
      6. call_user_func_array() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
      7. Illuminate\Routing\Controller-&gt;callAction() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45
      8. Illuminate\Routing\ControllerDispatcher-&gt;dispatch() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Route.php:212
      9. Illuminate\Routing\Route-&gt;runController() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Route.php:169
     10. Illuminate\Routing\Route-&gt;run() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Router.php:658
     11. Illuminate\Routing\Router-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
     12. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/app/Http/Middleware/AdminCheckRole.php:24
     13. App\Http\Middleware\AdminCheckRole-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     14. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     15. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/chrisbjr/api-guard/src/Http/Middleware/AuthenticateApiKey.php:51
     16. Chrisbjr\ApiGuard\Http\Middleware\AuthenticateApiKey-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     17. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     18. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
     19. Illuminate\Routing\Middleware\SubstituteBindings-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     20. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     21. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php:57
     22. Illuminate\Routing\Middleware\ThrottleRequests-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     23. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     24. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
     25. Illuminate\Pipeline\Pipeline-&gt;then() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Router.php:660
     26. Illuminate\Routing\Router-&gt;runRouteWithinStack() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Router.php:635
     27. Illuminate\Routing\Router-&gt;runRoute() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Router.php:601
     28. Illuminate\Routing\Router-&gt;dispatchToRoute() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Router.php:590
     29. Illuminate\Routing\Router-&gt;dispatch() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
     30. Illuminate\Foundation\Http\Kernel-&gt;Illuminate\Foundation\Http\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
     31. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/fideloper/proxy/src/TrustProxies.php:56
     32. Fideloper\Proxy\TrustProxies-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     33. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     34. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
     35. Illuminate\Foundation\Http\Middleware\TransformsRequest-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     36. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     37. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
     38. Illuminate\Foundation\Http\Middleware\TransformsRequest-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     39. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     40. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
     41. Illuminate\Foundation\Http\Middleware\ValidatePostSize-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     42. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     43. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:46
     44. Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode-&gt;handle() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
     45. Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
     46. Illuminate\Routing\Pipeline-&gt;Illuminate\Routing\{closure}() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
     47. Illuminate\Pipeline\Pipeline-&gt;then() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
     48. Illuminate\Foundation\Http\Kernel-&gt;sendRequestThroughRouter() /var/www/folder/releases/ba5a5f0c/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
     49. Illuminate\Foundation\Http\Kernel-&gt;handle() /var/www/folder/releases/ba5a5f0c/public/index.php:55    
    
    stale 
    opened by ediblemanager 7
  • Use Beautymail on top of Laravel 5.3 mailables

    Use Beautymail on top of Laravel 5.3 mailables

    I was looking into a way to make beautymail work on top of the mailables. This is what I was able to come up with. I would love to see people's thoughts on the matter

    <?php
    
    namespace App\Mail;
    
    use Illuminate\Mail\Mailable;
    use Illuminate\Container\Container;
    use Illuminate\Contracts\Mail\Mailer as MailerContract;
    use Snowfire\Beautymail\Beautymail;
    
    class BeautyMailable extends Mailable
    {
    
    	/**
    	 * Send the message using the given mailer.
    	 *
    	 * @param  \Illuminate\Contracts\Mail\Mailer  $mailer
    	 * @return void
    	 */
    	public function send(MailerContract $mailer)
    	{
    		Container::getInstance()->call([$this, 'build']);
    
    		$beautymail = app()->make(Beautymail::class);
    
    		$beautymail->send($this->buildView(), $this->buildViewData(), function ($message) {
    			$this->buildFrom($message)
    				->buildRecipients($message)
    				->buildSubject($message)
    				->buildAttachments($message)
    				->runCallbacks($message);
    		});
    	}
    }
    
    opened by likeadeckofcards 7
  • Make $css available for used views

    Make $css available for used views

    Issue: https://github.com/Snowfire/Beautymail/issues/22

    The 'css' key from the configuration wasn't shared across the views so the CSS properties couldn't be used. In order to get this working I did these things:

    • Changed the BeautymailServiceProvider in order to add the css array to $beautymail->settings (private property)
    • The ServiceProvider checks if the CSS is uncommented and has at least one value
    • Changed all 4 templates to include the $css if it is present

    I noticed that not all CSS works, I tested with this array: 'css' => [ 'td.contentblock h4[class=test_header] { color: #FF0000; font-weight: bold; }', 'table { font-family:\'Helvetica Neue\',Helvetica,Arial,sans-serif; color: #888888; }', 'table td { font-family:\'Helvetica Neue\',Helvetica,Arial,sans-serif; color: #888888; }', 'table th { font-family:\'Helvetica Neue\',Helvetica,Arial,sans-serif; color: #888888; font-weight: bold; }', ],

    All CSS worked, except the color for my heading which remained #444444, I guess this has something to do with the CssInlinerPlugin, since my CSS wasn't added to the head but inlined in the HTML.

    opened by joshuadegier 6
  • Minty template doesn't read the color values in the config file properly

    Minty template doesn't read the color values in the config file properly

    No matter what I did, I couldn't get the Minty template to respect the colors I was putting in the config/beautymail.php file. After looking in the minty.blade.php template file in the vendor src folder, I see it's pulling the values from Config::get('beautymail**::templates**.color.highlight'), which is null when I try to print it out. Changing this to Config::get('beautymail.color.highlight') fixed it for me, but I do not know if this is the proper way to fix it (I doubt it). Anyone else experiencing this?

    opened by Kortako 6
  • Emails missing To: header

    Emails missing To: header

    We're checking the spamyness of emails sent by beautymail because some users reported delivery issues. It seems that beautymail is not including a To: header, so while the destination address is in the SMTP communication (therefore it delivers) it's not in the headers:

    Sender: [email protected]
    Message-ID: <14d60715101d281b39df1fb01f2784ab@_>
    Date: Mon, 12 Dec 2022 11:06:58 -0500
    Subject: Welcome email
    From: Serivce <[email protected]>
    MIME-Version: 1.0
    Content-Type: multipart/related;
    

    This sequence should include a header like To: User [email protected] by default.

    opened by ronnessim 0
  • Need a new release - close after reading

    Need a new release - close after reading

    It looks like your master branch is already patched up, but the 1.1.5 release is having issues.

    No need to respond - feel free to close after you receive this.

    PS: I can't wait to try out your package, I'm getting excited!!!

    If I pull from dev-master all is well.

    If I pull from 1.1.5 on Laravel 9.5.x I get:

    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires snowfire/beautymail 1.1.5 -> satisfiable by snowfire/beautymail[v1.1.5].
        - snowfire/beautymail v1.1.5 requires illuminate/support 4.*|5.*|^6.0.0|^7.0.0|^8.0.0 -> found illuminate/support[v4.0.0-BETA2, ..., 4.2.x-dev, v5.0.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.
    
    
    opened by robinlists 2
  • PHP 8.1+ ERROR

    PHP 8.1+ ERROR

    Problem 1 - pelago/emogrifier is locked to version v5.0.1 and an update of this package was not requested. - pelago/emogrifier v5.0.1 requires php ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 -> your php version (8.1.2) does not satisfy that requirement. Problem 2 - pelago/emogrifier v5.0.1 requires php ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 -> your php version (8.1.2) does not satisfy that requirement. - snowfire/beautymail v1.1.5 requires pelago/emogrifier ^3.0|^4.0|^5.0 -> satisfiable by pelago/emogrifier[v5.0.1]. - snowfire/beautymail is locked to version v1.1.5 and an update of this package was not requested.

    opened by dev-techguy 6
Owner
null
Queue, preview and and send emails stored in the database.

Codeigniter4 email queue Queue, preview and and send emails stored in the database. This package provides an interface for creating emails on the fly

null 3 Apr 12, 2022
A ready-to-use PHP script for sending Emails with an HTML Template will use a Gmail account as the sender and you will not need any email server. Powered by PHPMailer.

Gmail Email Sender by PHP A ready-to-use PHP script for sending Emails with an HTML Template will use a Gmail account as the sender and you will not n

Max Base 4 Oct 29, 2022
Offer an online version of your Laravel emails to users.

This is was a collaborative project with Ryan Chandler. Please consider supporting him for the hard work he put into this package! Help support the ma

Sam Carré 251 Dec 25, 2022
An AngularJS / Laravel app - Keyword Based Email forwarder | read/write emails through IMAP

@MailTree Simple mail forwarder. Based on the specific email body/subject keywords forward mails to the list of predefined users. Install Imap Install

Dren Kajmakchi 4 Aug 21, 2018
Store outgoing emails in Laravel

Record and view all sent emails Watch a video walkthrough https://www.youtube.com/watch?v=Oj_OF5n4l4k&feature=youtu.be Documentation and install instr

David Carr 203 Dec 15, 2022
Mail Web is a Laravel package which catches emails locally for debugging

Mail Web is a Laravel package which catches emails locally for debugging Installation Use the package manager composer to install Mail Web. composer r

Appoly 64 Dec 24, 2022
Laravel mailer which will catch all the sent emails and show them on an application view.

Laravel Web Mailer This package contains a web mailer which will catch all the sent emails. Then, you can view it visiting the route /web-inbox. The e

Creagia 54 Dec 16, 2022
Manage mailboxes, filter/get/delete emails in PHP (supports IMAP/POP3/NNTP)

PHP IMAP Initially released in December 2012, the PHP IMAP Mailbox is a powerful and open source library to connect to a mailbox by POP3, IMAP and NNT

Sergey 1.5k Jan 3, 2023
The Mailer component helps sending emails

Mailer Component The Mailer component helps sending emails. Getting Started $ composer require symfony/mailer use Symfony\Component\Mailer\Transport;

Symfony 1.1k Jan 7, 2023
Allows you to archive old emails from one Gmail mailbox to another Gmail mailbox

Gmail Archiver L'application Gmail archiver permet de déplacer automatiquement tous les vieux mails d'une boite Gmail vers une autre boite Gmail (ou é

Arnaud Lemercier 19 Jan 27, 2022
This application (class) does the sending of emails used in the phpmailer library

emailsender - PHP Notification library via email using phpMailer This library has the function of sending email using the phpmailer library. Doing thi

Lucas Alcantara Rodrigues Volpati 1 Feb 9, 2022
A Laravel package to check if you can send e-mail through a given mailserver in name of a given e-mail address

A Laravel package to check if you can send e-mail through a given mailserver in name of a given e-mail address Mail spf checker A Laravel package to c

Dieter Coopman 110 Dec 16, 2022
Send email across all platforms using one interface

Send email across all platforms using one interface. Table Of Content Requirements Installation Providers AmazonSES Mailgun Mailjet Mandrill Postmark

Omnimail 329 Dec 30, 2022
SlmMail is a module that integrates with various third-parties API to send mails. Integration is provided with the API of those services

SlmMail is a module that integrates with various third-parties API to send mails. Integration is provided with the API of those services

Webador 107 Dec 14, 2022
Mail Api for fetch or send mails

flux-mail-api Mail Api for fetch or send mails Installation Native Download RUN (mkdir -p /%path%/libs/flux-mail-api && cd /%path%/libs/flux-mail-api

null 2 Dec 12, 2022
Laravel Mail Credentials switcher for Budget Laravel Applications

Laravel Mail Switcher Laravel Mail Credentials Switcher is a library which helps you to: Manage your Mail Service Credentials Configure the Laravel's

(Seth) Phat Tran 34 Dec 24, 2022
Laravel IMAP is an easy way to integrate both the native php-imap module and an extended custom imap protocol into your Laravel app.

Laravel IMAP is an easy way to integrate both the native php-imap module and an extended custom imap protocol into your Laravel app. This enables your app to not only respond to new emails but also allows it to read and parse existing mails and much more.

null 530 Jan 6, 2023
Laravel Mail Catcher Driver

Laravel Mail Catcher Driver This package include a new mailbase driver which will catch all the sent emails and save it to the database. It then expos

Tauqeer Liaqat 94 Aug 30, 2022
MailEclipse - Laravel Mailable Editor!

MailEclipse is a mailable editor package for your Laravel applications to create and manage mailables using a web UI.

Yassine Qoraiche 1.9k Jan 5, 2023