The post Becoming a Google Workspace Reseller with Ingram Micro: A Comprehensive Guide appeared first on Design.Garden.
]]>The post Becoming a Google Workspace Reseller with Ingram Micro: A Comprehensive Guide appeared first on Design.Garden.
]]>The post How to Use the Archive Feature in Office 365 appeared first on Design.Garden.
]]>Outlook Online Archive, also known as In-Place Archive or Exchange Online Archive, is an online mailbox accessible only with an internet connection. This feature helps you store older emails in a separate mailbox, freeing up space in your primary mailbox and improving Outlook’s performance.
The primary difference between the two is that the Archive folder is part of the primary mailbox, whereas the Online Archive is a separate mailbox. The Online Archive offers a more efficient solution for reducing mailbox size and keeping your Outlook running smoothly.
As of 2024, Exchange Online (Plan 2) may no longer include Online Archiving.
If you need to upgrade to either of these licensing options, Design.Garden is here to assist you. You can request a license upgrade in the following ways:
Once we receive your request, our team will:
For enabling the archive mailbox for multiple users:
shellConnect-ExchangeOnline -UserPrincipalName [email protected]
shellGet-EXOMailbox -Filter {ArchiveStatus -Eq "None" -AND RecipientTypeDetails -eq "UserMailbox"} | Enable-Mailbox -Archive
Auto-expanding archiving increases storage automatically when the archive mailbox is almost full.
shellConnect-ExchangeOnline -UserPrincipalName [email protected] Set-OrganizationConfig -AutoExpandingArchive
shellEnable-Mailbox [email protected] -AutoExpandingArchive
Policies can automatically move emails based on age. Default policies move emails older than two years to the Online Archive.
You can create custom retention policies using PowerShell:
shellNew-RetentionPolicyTag "Custom Policy 6 months" -Type Personal -RetentionEnabled $true -AgeLimitForRetention 180 -RetentionAction MoveToArchive
shellGet-MailboxServer | Get-ManagedFolderAssistant | Select-Object Identity,WorkCycle,StartTime,Status
Ensure users have the correct permissions. For shared mailboxes, full access is necessary.
Design.Garden, a Microsoft license reseller, works through Ingram Micro Inc as an Indirect Reseller, making us your go-to partner for all your Microsoft licensing needs. We assign licenses to our customer’s users via our Microsoft 365 admin center, ensuring seamless integration and management.
At Design.Garden, we are committed to helping you make the most of your Office 365 features, ensuring efficient email storage and seamless operations. If you have any questions or need further assistance, please contact our support team.
The post How to Use the Archive Feature in Office 365 appeared first on Design.Garden.
]]>The post Background Check Policy appeared first on Design.Garden.
]]>Policy for Employment Candidates
Policy for Our Customers and Partners
The post Background Check Policy appeared first on Design.Garden.
]]>The post Compliance with Labor Laws appeared first on Design.Garden.
]]>We invite you to report labor law violations either to our owner, [email protected], or to the State Labor Law Office: https://www.dol.gov/agencies/whd/state/contacts#WI
The post Compliance with Labor Laws appeared first on Design.Garden.
]]>The post Human Rights Statement appeared first on Design.Garden.
]]>Commitment:
We commit to protecting international human rights as outlined in key global documents. Our relationships are based on shared principles and values. We extend our human rights responsibilities to our supply chains, addressing any violations and expecting corrective measures.
Workforce:
We aim to foster a respectful, diverse, and inclusive workplace, ensuring fair treatment, safety, and non-discrimination. We support employees’ labor rights and provide equal opportunities.
Suppliers, Partners and Customers:
We expect our suppliers, partners and customers to respect and uphold human rights as prescribed here, and as prescribed within their own policies and within their own community.
Reporting:
We are a small business, so concerns regarding human rights can be reported via our main line at +1 608-205-8006, or directly to our owner, [email protected].
The post Human Rights Statement appeared first on Design.Garden.
]]>The post Debugging File Uploads appeared first on Design.Garden.
]]>File uploading in the context of a web server involves a series of steps, some of which are interconnected and some that work independently. Let’s delve into the process:
POST request encoded as multipart/form-data.POST request.multipart/form-data encoding and segregate the different parts of the payload./tmp in UNIX-like systems or a temp directory on Windows systems). This is not yet the final location; it’s a staging area of sorts to hold the file data as it’s streamed in.upload.php).$_FILES superglobal array. This array contains metadata about the file like its name, MIME type, the temporary storage location, etc.$_FILES["fileToUpload"]["tmp_name"], you’re referencing the temporary location of the uploaded file.move_uploaded_file().move_uploaded_file() function, the PHP script moves the file from the temporary location to the desired location (e.g., an uploads directory).Throughout this process, both Apache and PHP handle potential errors or issues. For instance, if the uploaded file exceeds a size limit (as set in php.ini via the upload_max_filesize directive), PHP will throw an error, and $_FILES["fileToUpload"]["error"] will provide an error code.
In summary, the file is received and managed by Apache first, stored temporarily, and then handed over to PHP for further processing. PHP then decides the fate of the file – whether to keep and move it to a final location or to let it be automatically discarded.
Certainly! Implementing a shutdown function is a good way to catch fatal errors that can halt the execution of a PHP script. Here’s how you can integrate a shutdown handler into the upload.php to catch errors and log them:
function writeToLog($message) {
$logFile = “debug.log”;
file_put_contents($logFile, date(“Y-m-d H:i:s”) . “: “ . $message . “\n”, FILE_APPEND);
}
function shutdownHandler() {
$last_error = error_get_last();
if ($last_error && ($last_error[‘type’] & (E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR))) {
writeToLog(“Shutdown due to fatal error. Message: “ . $last_error[‘message’] . ” in file: “ . $last_error[‘file’] . ” on line: “ . $last_error[‘line’]);
}
}
register_shutdown_function(‘shutdownHandler’);
$target_dir = “uploads/”;
$target_file = $target_dir . basename($_FILES[“fileToUpload”][“name”]);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
writeToLog(“Upload Attempt Initiated”);
if (isset($_FILES[“fileToUpload”])) {
writeToLog(“Upload Temp Name: “ . $_FILES[“fileToUpload”][“tmp_name”]);
writeToLog(“Upload Type: “ . $_FILES[“fileToUpload”][“type”]);
writeToLog(“Upload Size: “ . ($_FILES[“fileToUpload”][“size”] / 1024) . ” kB”);
writeToLog(“Upload Name: “ . $_FILES[“fileToUpload”][“name”]);
writeToLog(“Target File: “ . $target_file);
writeToLog(“File Type: “ . $imageFileType);
} else {
writeToLog(“No file uploaded or file array not set in POST data.”);
exit(“No file uploaded.”);
}
if (move_uploaded_file($_FILES[“fileToUpload”][“tmp_name”], $target_file)) {
writeToLog(“The file “ . basename($_FILES[“fileToUpload”][“name”]) . ” has been uploaded successfully.”);
echo “The file “ . basename($_FILES[“fileToUpload”][“name”]) . ” has been uploaded.”;
} else {
writeToLog(“Error moving uploaded file.”);
echo “Sorry, there was an error uploading your file.”;
}
The shutdownHandler function will be called when the script execution is finished or terminated. If there was a fatal error, the error will be logged.
This will ensure that even if your script encounters a fatal error, you’ll have a log of it. This is especially useful for debugging those issues that don’t throw exceptions but rather halt the script altogether.
Sure, I can help with that. Here’s a basic file upload system in PHP with HTML and some debugging using jQuery. This will allow you to inspect various stages of the process:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<title>Simple File Upload</title>
</head>
<body><form action=“upload.php” method=“post” enctype=“multipart/form-data”><script>
$(document).ready(function(){
$(“form”).submit(function(event){
event.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: ‘upload.php’,
type: ‘POST’,
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
success: function(response){
$(“#debugInfo”).html(response);
},
error: function(){
$(“#debugInfo”).html(“Error during AJAX call.”);
}
});
return false;
});
});
</script>
</body>
</html>
upload.php):
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));echo “Debugging information: <br>”;Make sure the uploads/ directory exists and is writable by the web server. If it’s not, the file move operation will fail.
Note: This is a basic file upload mechanism and may have vulnerabilities such as not checking the type of the file uploaded. In a production system, you’d want to add checks to ensure only allowed file types are uploaded, and there are no path traversal vulnerabilities or other types of vulnerabilities. The above code is primarily for debugging purposes.
The tmp dir is supposed to be listed in phpinfo() as upload_tmp_dir; however, this variable is often empty when using cPanel. The default in cPanel is for files to upload to /tmp, which is a folder owned by root, but with 777 permissions.
Watch the file size increment as the upload progresses:
root@18-209-62-97:/tmp/systemd-private-5159075e5a84470cba847c21ff468618-ea-php81-php-fpm.service-LYhdHg/tmp# ls -la
total 49952
drwxrwxrwt 2 root root 4096 Sep 8 22:53 .
drwx—— 3 root root 4096 Aug 9 15:19 ..
-rw——- 1 stoughtonhealth stoughtonhealth 51082501 Sep 8 23:07 phpjWqXsf
root@18-209-62-97:/tmp/systemd-private-5159075e5a84470cba847c21ff468618-ea-php81-php-fpm.service-LYhdHg/tmp# ls -la
total 53968
drwxrwxrwt 2 root root 4096 Sep 8 22:53 .
drwx—— 3 root root 4096 Aug 9 15:19 ..
-rw——- 1 stoughtonhealth stoughtonhealth 55193058 Sep 8 23:11 phpjWqXsf
The post Debugging File Uploads appeared first on Design.Garden.
]]>The post Prevent Staging Websites from Sending Emails in IIS appeared first on Design.Garden.
]]>Sending emails from web applications is a common task, but when working on or testing systems with real email addresses, it’s important to prevent recipients from receiving unintended emails, especially if real data is being used. In this blog post, I’ll show you how to configure ASP.NET SMTP client to write emails to disk instead of sending them out using the “Store e-mail in pickup directory” feature in IIS.
You can define SMTP settings in the web.config file under the system.web => mailsettings node. To create an SmtpClient using these settings, simply instantiate it with an empty constructor:
csharpvar smtpClient = new SmtpClient();
Communicating with an SMTP server using the SMTP protocol can add unnecessary overhead to your network and SMTP server. Instead, clients can write their emails to a folder (called a pickup directory) that the SMTP server can access. This reduces resource usage, as the SMTP server only needs to forward the emails. File operations are much faster than communication over the SMTP protocol.
To configure your ASP.NET application to use a pickup directory, update your web.config file as follows:
xml<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="c:\temp\maildrop\"/>
</smtp>
</mailSettings>
</system.net>
Important points to remember:
In some cases, you might need to support multiple SMTP servers, or your configuration might not be stored in the web.config file. In these situations, you can initialize the SmtpClient in code as follows:
csharpvar smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
smtpClient.PickupDirectoryLocation = pickupFolder;
If you have set up IIS with SMTP service, you can configure your ASP.NET application to use the IIS pickup folder by using the following setting for the delivery method:
csharpSmtpDeliveryMethod.PickupDirectoryFromIis
You can also set this in the web.config file:
xml<system.net>
<mailSettings>
<smtp deliveryMethod="PickupDirectoryFromIis" />
</mailSettings>
</system.net>
Conclusion:
By using the built-in email features of ASP.NET, you can easily prevent staging websites from sending emails and avoid using custom code to handle this task. Configuring your application to use a pickup directory is a simple and elegant solution that reduces the amount of code you need to support emails.
The post Prevent Staging Websites from Sending Emails in IIS appeared first on Design.Garden.
]]>The post The Benefits of Using a Responsive Web Design Framework appeared first on Design.Garden.
]]>What is Responsive Web Design, and Why is it Important?
Responsive web design is an approach to web design that allows websites to adapt to different screen sizes and devices, such as smartphones, tablets, and desktop computers. Responsive web design ensures that website content is easily accessible and readable, regardless of the device being used.
Responsive web design is important because it:
What is a Responsive Web Design Framework?
A responsive web design framework is a collection of pre-written CSS and JavaScript code that developers can use to create responsive websites quickly and easily. A responsive web design framework provides a starting point for website development, allowing developers to focus on website functionality and content rather than design.
What are the Benefits of Using a Responsive Web Design Framework?
Using a responsive web design framework can provide several benefits, including:
What Responsive Web Design Frameworks are Available?
There are several responsive web design frameworks available, including:
Using a responsive web design framework can provide several benefits, including faster development time, consistent design, mobile-friendliness, and improved performance. With several responsive web design frameworks available, there has never been a better time to start using responsive web design to improve your website’s user experience and performance.
The post The Benefits of Using a Responsive Web Design Framework appeared first on Design.Garden.
]]>The post The Role of Web Development in Digital Marketing appeared first on Design.Garden.
]]>What is Digital Marketing, and Why is it Important?
Digital marketing is the practice of promoting products or services through digital channels, such as search engines, social media, email, and websites. Digital marketing allows businesses to reach a wider audience and target their marketing efforts more effectively.
Digital marketing is important because it allows businesses to:
What Role Does Web Development Play in Digital Marketing?
Web development plays a crucial role in digital marketing, as your website is often the first point of contact between your business and potential customers. A well-designed and optimized website can help businesses achieve their digital marketing goals by:
How Can You Improve Your Website for Digital Marketing?
Improving your website for digital marketing involves several factors, including:
Web development plays a crucial role in digital marketing, as your website is often the first point of contact between your business and potential customers. By improving your website’s design, user experience, and optimization for search engines, you can create a professional online presence that helps you achieve your digital marketing goals. Design.Garden has the experts you need to grow a professional, easy-to-manage website that checks all of these boxes and more. Click here to learn a bit more about us and what we can bring to the table!
The post The Role of Web Development in Digital Marketing appeared first on Design.Garden.
]]>The post Mastering Your Online Presence with Content Management Systems (CMSs) appeared first on Design.Garden.
]]>What is a Content Management System (CMS), and Why is it Important?
A content management system (CMS) is a software application that allows you to create, manage, and publish digital content, such as website pages, blog posts, and multimedia content. CMSs provide a user-friendly interface that allows non-technical users to create and publish content without the need for HTML or CSS knowledge.
CMSs are important because they provide businesses with several benefits, including:
What CMSs are Available?
There are several CMSs available, including:
Using a CMS can provide businesses with several benefits, including easy website management, improved collaboration, customization, and SEO optimization. With so many CMSs available, there has never been a better time to start using a CMS to improve your online presence and provide a better user experience for your customers.
The post Mastering Your Online Presence with Content Management Systems (CMSs) appeared first on Design.Garden.
]]>