126 lines
8 KiB
HTML
126 lines
8 KiB
HTML
<!doctype html>
|
|
<html lang="en-us">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title></title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="stylesheet" href="css/main.css">
|
|
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app">
|
|
<h1>1. Fill in the forms for your email configuration profile</h1>
|
|
<p>Documentation can be found
|
|
<a href="https://developer.apple.com/documentation/devicemanagement/configuring_multiple_devices_using_profiles">here</a>
|
|
for common fields and
|
|
<a href="https://developer.apple.com/documentation/devicemanagement/mail">here</a>
|
|
for email specific fields.
|
|
</p>
|
|
<p>
|
|
This is a free and open source software released under the GPL v3.0. The source code is available
|
|
<a href="https://sr.ht/~crocmagnon/mobileconfig-generator/">on sourcehut</a>.
|
|
</p>
|
|
<div id="profile">
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version='1.0'>
|
|
<dict>
|
|
<key>PayloadContent</key>
|
|
<array>
|
|
<dict>
|
|
<key>EmailAccountType</key>
|
|
<string><select v-model="payload.EmailAccountType">
|
|
<option value="" disabled>Select...</option>
|
|
<option>EmailTypeIMAP</option>
|
|
<option>EmailTypePOP</option>
|
|
</select></string>
|
|
<key>EmailAddress</key>
|
|
<string><input type="email" v-model="payload.EmailAddress" v-bind:placeholder="payloadPlaceholders.EmailAddress"></string>
|
|
<key>EmailAccountDescription</key>
|
|
<string><input type="text" v-model="payload.EmailAccountDescription" v-bind:placeholder="payloadPlaceholders.EmailAccountDescription"></string>
|
|
|
|
<!-- Incoming -->
|
|
<key>IncomingMailServerAuthentication</key>
|
|
<string><select v-model="payload.IncomingMailServerAuthentication">
|
|
<option value="" disabled>Select...</option>
|
|
<option>EmailAuthNone</option>
|
|
<option>EmailAuthPassword</option>
|
|
<option>EmailAuthCRAMMD5</option>
|
|
<option>EmailAuthNTLM</option>
|
|
<option>EmailAuthHTTPMD5</option>
|
|
</select></string>
|
|
<key>IncomingMailServerHostName</key>
|
|
<string><input type="text" v-model="payload.IncomingMailServerHostName" v-bind:placeholder="payloadPlaceholders.IncomingMailServerHostName"></string>
|
|
<key>IncomingMailServerPortNumber</key>
|
|
<integer><input type="number" v-model="payload.IncomingMailServerPortNumber" v-bind:placeholder="payloadPlaceholders.IncomingMailServerPortNumber"></integer>
|
|
<key>IncomingMailServerUsername</key>
|
|
<string><input type="text" v-model="payload.IncomingMailServerUsername" v-bind:placeholder="payloadPlaceholders.IncomingMailServerUsername"></string>
|
|
<key>IncomingMailServerUseSSL</key>
|
|
<<input type="checkbox" v-model="payload.IncomingMailServerUseSSL">/>
|
|
|
|
<!-- Outgoing -->
|
|
<key>OutgoingMailServerAuthentication</key>
|
|
<string><select v-model="payload.OutgoingMailServerAuthentication">
|
|
<option value="" disabled>Select...</option>
|
|
<option>EmailAuthNone</option>
|
|
<option>EmailAuthPassword</option>
|
|
<option>EmailAuthCRAMMD5</option>
|
|
<option>EmailAuthNTLM</option>
|
|
<option>EmailAuthHTTPMD5</option>
|
|
</select></string>
|
|
<key>OutgoingMailServerHostName</key>
|
|
<string><input type="text" v-model="payload.OutgoingMailServerHostName" v-bind:placeholder="payloadPlaceholders.OutgoingMailServerHostName"></string>
|
|
<key>OutgoingMailServerPortNumber</key>
|
|
<integer><input type="number" v-model="payload.OutgoingMailServerPortNumber" v-bind:placeholder="payloadPlaceholders.OutgoingMailServerPortNumber"></integer>
|
|
<key>OutgoingMailServerUsername</key>
|
|
<string><input type="text" v-model="payload.OutgoingMailServerUsername" v-bind:placeholder="payloadPlaceholders.OutgoingMailServerUsername"></string>
|
|
<key>OutgoingMailServerUseSSL</key>
|
|
<<input type="checkbox" v-model="payload.OutgoingMailServerUseSSL">/>
|
|
<key>OutgoingPasswordSameAsIncomingPassword</key>
|
|
<<input type="checkbox" v-model="payload.OutgoingPasswordSameAsIncomingPassword">/>
|
|
|
|
<!-- Common keys -->
|
|
<key>PayloadDisplayName</key>
|
|
<string><input type="text" v-model="payload.PayloadDisplayName" v-bind:placeholder="payloadPlaceholders.PayloadDisplayName"></string>
|
|
<key>PayloadDescription</key>
|
|
<string><input type="text" v-model="payload.PayloadDescription" v-bind:placeholder="payloadPlaceholders.PayloadDescription"></string>
|
|
<key>PayloadIdentifier</key>
|
|
<string><input type="text" v-model="payload.PayloadIdentifier" v-bind:placeholder="payloadPlaceholders.PayloadIdentifier"></string>
|
|
<key>PayloadType</key>
|
|
<string>{{ payload.PayloadType }}</string>
|
|
<key>PayloadUUID</key>
|
|
<string>{{ payload.PayloadUUID() }}</string>
|
|
<key>PayloadVersion</key>
|
|
<integer>{{ payload.PayloadVersion }}</integer>
|
|
</dict>
|
|
</array>
|
|
|
|
<!-- Common keys -->
|
|
<key>PayloadDisplayName</key>
|
|
<string><input type="text" v-model="container.PayloadDisplayName" v-bind:placeholder="containerPlaceholders.PayloadDisplayName"></string>
|
|
<key>PayloadDescription</key>
|
|
<string><input type="text" v-model="container.PayloadDescription" v-bind:placeholder="containerPlaceholders.PayloadDescription"></string>
|
|
<key>PayloadIdentifier</key>
|
|
<string><input type="text" v-model="container.PayloadIdentifier" v-bind:placeholder="containerPlaceholders.PayloadIdentifier"></string>
|
|
<key>PayloadType</key>
|
|
<string>{{ container.PayloadType }}</string>
|
|
<key>PayloadUUID</key>
|
|
<string>{{ container.PayloadUUID() }}</string>
|
|
<key>PayloadVersion</key>
|
|
<integer>{{ container.PayloadVersion }}</integer>
|
|
</dict>
|
|
</plist>
|
|
</div>
|
|
|
|
<h1>2. Download your profile</h1>
|
|
<a v-bind:href="generatedProfileLink" v-bind:download="downloadFileName">Download</a>
|
|
|
|
<h1>3. Or copy/paste</h1>
|
|
<textarea rows="30" cols="80">{{ generatedProfile }}</textarea>
|
|
</div>
|
|
<script src="js/main.js"></script>
|
|
</body>
|
|
|
|
</html>
|