public static MessagingBuilder minimal(boolean autoconfigure, String... basePackages) {
		MessagingBuilder builder = new MessagingBuilder();
		findAndRegister(builder, "minimal", basePackages);
		if (autoconfigure) {
			builder.configure();
		}
		return builder;
	}
public static MessagingBuilder minimal ( boolean autoconfigure , String ... basePackages ) { MessagingBuilder builder = new MessagingBuilder ( ) ; findAndRegister ( builder , "minimal" , basePackages ) ; if ( autoconfigure ) { builder . configure ( ) ; } return builder ; }
Static factory method that initializes a {@link MessagingBuilder}
instance and registers auto-configures but doesn't apply them if
autoconfigure parameter is false. The {@link #configure()} method must be
called manually.


Usage example:

<pre>
<code>
MessagingService service = MessagingBuilder.minimal()
.environment()
.properties("application.properties")
.and()
.build();
</code>
</pre>

<p>
Basically, the minimal behavior:
<ul>
<li>Enables all template engines that are present in the classpath and
configures them</li>
<li>Catches all uncaught exception to wrap them in order to avoid
unwanted unchecked exception</li>
<li>Uses system properties</li>
<li>Enables and configures useful auto-filling mechanisms (using property
values and providing email subject from templates)</li>
<li>Enables mimetype detection</li>
<li>Enables locating templates, css, images and all other resources using
lookup prefix ("file:" for files that are present on the filesystem,
"classpath:" and "" for files that are present in the classpath)</li>
<li>Enables use of some properties to provide path prefix/suffix for
locating resources</li>
<li>Enables images and css inlining used by HTML {@link Email}s</li>
</ul>

The minimal behavior doesn't automatically auto-configure sender
implementations.

<p>
The auto-configurers ( {@link MessagingConfigurer}s) are automatically
loaded from the classpath. Only configurers that are in the provided
packages and sub-packages are loaded. Some Ogham modules are optional
meaning that according to used modules, the behavior will vary.

Loaded {@link MessagingConfigurer}s are applied to the
{@link MessagingBuilder} only if they are for the "minimal" builder. It
is accomplished thanks to the {@link ConfigurerFor} annotation (only
configurers annotated and with {@link ConfigurerFor#targetedBuilder()}
set to "minimal").

Loaded configurers with priorities are (if all Ogham modules are used):
<ul>
<li><code>DefaultMessagingConfigurer</code>: 100000</li>
<li><code>DefaultThymeleafEmailConfigurer</code>: 90000</li>
<li><code>DefaultFreemarkerEmailConfigurer</code>: 80000</li>
<li><code>DefaultThymeleafSmsConfigurer</code>: 70000</li>
<li><code>DefaultFreemarkerSmsConfigurer</code>: 60000</li>
</ul>

TODO: link to whole configuration that is applied by minimal

<p>
The auto-configured {@link MessagingBuilder} will provide a default
behavior with no sender implementation. This is useful if you only want
to use a particular implementation or your custom sender implementation.
You can still override some behaviors for your needs.

For example:

<pre>
<code>
MessagingService service = MessagingBuilder.minimal()
.environment()
.properties("application.properties")
.and()
.wrapUncaught(false)    // overrides and disables wrapUncaught option
.build();
</code>
</pre>

@param autoconfigure
true to automatically apply found configurers, false to
configure manually later by calling {@link #configure()}
@param basePackages
the base packages that are scanned to find
{@link MessagingConfigurer} implementations
@return the messaging builder that can be customized