Design.Garden https://design.garden/ Organic Web Development Thu, 01 Aug 2024 16:32:00 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://design.garden/wp-content/uploads/2021/02/cropped-DG-Favicon-32x32.png Design.Garden https://design.garden/ 32 32 197456410 Becoming a Google Workspace Reseller with Ingram Micro: A Comprehensive Guide https://design.garden/blog/becoming-a-google-workspace-reseller-with-ingram-micro/ Thu, 01 Aug 2024 15:50:14 +0000 https://design.garden/?p=43753 This guide provides a thorough, step-by-step process for becoming a Google Workspace Reseller with Ingram Micro, focusing on the critical steps of connecting your Partner Advantage account to Ingram Micro and managing customer transfers.

The post Becoming a Google Workspace Reseller with Ingram Micro: A Comprehensive Guide appeared first on Design.Garden.

]]>

Becoming a Google Workspace Reseller with Ingram Micro: A Comprehensive Guide

Introduction

As a long-time reseller of Google Workspace, navigating the recent changes implemented by Google has been a daunting task. The shift from direct sales via the Partner Sales Console to an indirect model through distributors like Ingram Micro has introduced new complexities. This guide aims to provide a thorough, step-by-step process for regaining the ability to sell Google Workspace, focusing on the critical steps of connecting your Partner Advantage account to Ingram Micro and managing customer transfers.

Background

Google’s recent changes require small business resellers to operate indirectly through distributors like Ingram Micro, eliminating direct access to the Partner Sales Console. Resellers must now obtain “Sell” authorization via the Partner Advantage portal and manage their transactions through Ingram Micro’s Xvantage platform. This transition has caused significant confusion and frustration, as highlighted by numerous resellers sharing their challenges online.

Step-by-Step Instructions

1. Initial Setup

  1. Create or Access a Google Workspace for Your Company

    • Sign up for a Google Workspace or Cloud Identity for your company.
    • Confirm access to admin.google.com for your company’s existing Google Workspace.
  2. Convert Unmanaged Users to Managed Users

    • Navigate to https://admin.google.com/ac/unmanaged to convert any unmanaged users to managed users.

2. Registering with Partner Advantage

  1. Register for Partner Advantage Portal Access

    • Visit https://www.partneradvantage.goog/GCPPRM/s/partnerselfregistration?language=en_US and complete the registration process.
  2. Apply for “Sell” Authorization

    • From your Partner Advantage portal, apply for “Sell” authorization. Ensure your company meets all requirements.
  3. Obtain Google Workspace Certifications

    • Have at least four team members obtain different Google Workspace certifications. Each certification must be unique to each individual as Google only counts one certification per person.

3. Registering with Ingram Micro

  1. Register as a Vendor with Ingram Micro

    • Sign up at https://www.ingrammicro.com/en-us/sign-up/sign-up.
  2. Request a Channel Partner Link

    • Open a ticket with Ingram Micro to request a Channel Partner Link. They may escalate to their Google-specific sales team, requiring your domain and Cloud Identity from your Partner Advantage portal (accessible by clicking your profile picture in the top-right, then “My Account”).
  3. Complete the Channel Partner Link Process

    • Ingram Micro will provide a link similar to https://channelservices.cloud.google.com/public/invites/accounts/{their-cloud-identity}/channelPartnerLinks/{your-cloud-identity}. Click the link and follow the instructions.

4. Placing an Order for an End Customer

  1. Check Your “Sell” Authorization Status

    • Verify in the Partner Advantage portal that your “Sell” authorization is active.
  2. Placing an Order

  • If you need to purchase a commitment (annual or monthly) for an end customer, Ingram Micro must “pull in” the customer first. Contact Ingram Micro support to handle this process.
  • For flexible subscriptions, you can place the order yourself via the Xvantage portal:
Steps for Placing a Flexible Order
  1. Search for “Google Workspace Business Starter usage”

    • In the Xvantage portal, search for the required subscription.
  2. Select Subscription Options

    • Click “Subscriptions” at the top, find the desired subscription, and click “Select Options”.
  3. Add to Cart and Checkout

    • Add the subscription to your cart, then proceed to checkout.
  4. Add End Customer Information

    • Click “Add end customer” on the Cart page and fill in the necessary details.
  5. Complete Checkout

    • Confirm the order details and complete the checkout process. Note that the total will be $0 initially as this is a flexible plan.
  6. Add Licenses Post Order

    • After placing the order, add the necessary licenses once the order is processed.

5. Meeting Notes and Email Chain with Ingram Micro Support

During the transition, I worked closely with Stephanie Ross at Ingram Micro, who provided invaluable assistance. Below are the key notes and steps from our interaction:

  1. Generate a Transfer Token

    • Have the end customer visit google.admin.com/TransferToken and generate a transfer code using the provided Public ID.
  2. Place a Transfer Order

    • Use the generated transfer code to place the order in Xvantage as a transfer order.
  3. Confirm and Complete Order

    • Ensure all details, such as domain email and contact information, are correct. Verify payment information and finalize the order.
  4. Monitor Order Status

    • Check the order status in the Xvantage portal and wait for the “Order Acknowledgement Email”.

Conclusion

Transitioning to the new reseller model with Google Workspace through Ingram Micro can be challenging, but with detailed instructions and support, the process becomes manageable. By following the steps outlined above and utilizing the provided resources, you can successfully navigate this transition and continue to serve your customers effectively. For any additional support, do not hesitate to reach out to your Ingram Micro contacts or consult the Partner Advantage resources.

The post Becoming a Google Workspace Reseller with Ingram Micro: A Comprehensive Guide appeared first on Design.Garden.

]]>
43753
How to Use the Archive Feature in Office 365 https://design.garden/blog/how-to-use-the-archive-feature-in-office-365/ Sat, 13 Jul 2024 16:42:54 +0000 https://design.garden/?p=43576 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 […]

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.

Key Characteristics:

  • Separate Mailbox: The archive is distinct from your primary mailbox.
  • Internet-Dependent: Accessible only with an internet connection.
  • Disk Space Saver: Data isn’t stored on the user’s computer.

Online Archive vs. Archive Folder

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.

Comparison:

  • Location: Archive Folder – Primary Mailbox; Online Archive – Exchange Online
  • Size: Archive Folder – Part of mailbox; Online Archive – 50GB/1.5 TB
  • Search Results: Archive Folder – Displayed; Online Archive – Not displayed

Licensing Options for Exchange Online Archiving

Exchange Online Archiving for Exchange Online

  • Cost: $3.60/user/month
  • Features:
    • Provides an additional archive mailbox.
    • Archive mailbox offers more storage capacity beyond the 50GB primary mailbox.
    • Ideal for storing older emails and freeing up space in the primary mailbox.

Exchange Online (Plan 2)

As of 2024, Exchange Online (Plan 2) may no longer include Online Archiving.

  • Cost: $8.00/user/month
  • Features:
    • Increases primary mailbox storage to 100GB.
    • Includes additional features such as DLP (Data Loss Prevention) and legal hold capabilities.
    • No need for a separate archive mailbox as the primary mailbox itself has increased capacity.

How to Request a License Upgrade

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:

  • Email Support: Send a request to our support team at [email protected].
  • Submit a Ticket: Log in to your customer account on my.design.garden and submit a support ticket.

How Design.Garden Implements the Upgrade

Once we receive your request, our team will:

  1. Verify Your Requirements: Confirm the details of the upgrade and ensure all necessary information is gathered.
  2. Purchase the License: Acquire the necessary licenses from Ingram Micro on your behalf.
  3. Assign the License: Use our Microsoft 365 admin center to assign the new license to the designated user(s) in your organization.
  4. Confirm Completion: Notify you once the upgrade is complete and provide any necessary instructions for utilizing the new features.

Enabling Archive Mailbox in Office 365

Using the Exchange Admin Center

  1. Open the Exchange Admin Center.
  2. Navigate to Recipients and select Mailboxes.
  3. Select the user you wish to enable the archive for.
  4. Click on Others and then Manage mailbox archive.
  5. Enable the Mailbox Archive.

Using PowerShell

For enabling the archive mailbox for multiple users:

  1. Connect to Exchange Online:
    shell
    Connect-ExchangeOnline -UserPrincipalName [email protected]
  2. Enable the archive mailbox for all users:
    shell
    Get-EXOMailbox -Filter {ArchiveStatus -Eq "None" -AND RecipientTypeDetails -eq "UserMailbox"} | Enable-Mailbox -Archive

Enabling Auto-Expanding Archive

Auto-expanding archiving increases storage automatically when the archive mailbox is almost full.

  1. Enable Auto-Expanding Archive for the entire organization:
    shell
    Connect-ExchangeOnline -UserPrincipalName [email protected] Set-OrganizationConfig -AutoExpandingArchive
  2. Enable for specific users:
    shell
    Enable-Mailbox [email protected] -AutoExpandingArchive

Using the Exchange Online Archive

Manual Archiving

  1. Select the emails you wish to archive.
  2. Right-click and choose Move, then select the Inbox – Online Archive folder.

Exchange Online Archiving Policies

Policies can automatically move emails based on age. Default policies move emails older than two years to the Online Archive.

Custom Policies

You can create custom retention policies using PowerShell:

shell
New-RetentionPolicyTag "Custom Policy 6 months" -Type Personal -RetentionEnabled $true -AgeLimitForRetention 180 -RetentionAction MoveToArchive

Troubleshooting Common Issues

Archive Not Working

  1. Check the retention tag settings.
  2. Verify that the user has the appropriate license.
  3. Ensure the archive mailbox is provisioned.
  4. Run the Managed Folder Assistant:
    shell
    Get-MailboxServer | Get-ManagedFolderAssistant | Select-Object Identity,WorkCycle,StartTime,Status

Accessing Online Archive

Ensure users have the correct permissions. For shared mailboxes, full access is necessary.

Where Design.Garden fits in

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.

]]>
43576
Background Check Policy https://design.garden/policies/background-check-policy/ Thu, 14 Dec 2023 16:04:18 +0000 https://design.garden/?p=41412 At Design.Garden, we recognize the fundamental human right to work and be fairly compensated, irrespective of an individual’s past and we strive to balance this with our responsibility to our […]

The post Background Check Policy appeared first on Design.Garden.

]]>
At Design.Garden, we recognize the fundamental human right to work and be fairly compensated, irrespective of an individual’s past and we strive to balance this with our responsibility to our clients to ensure we meet their own employment standards. Therefore, we have implemented a comprehensive background check policy to balance these principles.

Policy for Employment Candidates

  1. Background Checks: As part of our hiring process, all candidates are required to undergo a background check. This is crucial to ensure the safety and security of our workplace and maintain the high standards of service we promise our clients.
  2. Screening Companies: We may conduct these checks using one of the following accredited screening companies: GoodHire, HireRight, or AccurateNow. Candidates should be prepared to consent to background checks by any of these providers.
  3. Scope of Checks: The checks may include, but are not limited to, verification of criminal records, employment history, educational qualifications, and any other checks deemed necessary based on the role’s requirements.
  4. Candidate Rights: We respect the privacy and dignity of all candidates. You will be notified prior to the background check and your consent will be sought in a clear and transparent manner. You have the right to dispute any findings from these checks.

Policy for Our Customers and Partners

  1. Adherence to Your Requirements: We acknowledge and respect that you have specific screening processes that may differ from our own. We invite you to provide your requirements, and we will ensure that our staff assignments comply.
  2. Privacy and Eights of our Employees: We strive to maintain complete transparency with our customers regarding our policies, though we will not disclose private information about individual employees, including the results of background checks. In some cases, and with the employees’ consent, you may perform your own background checks on our staff.

The post Background Check Policy appeared first on Design.Garden.

]]>
41412
Compliance with Labor Laws https://design.garden/policies/compliance-with-labor-laws/ Thu, 14 Dec 2023 15:22:12 +0000 https://design.garden/?p=41406 At Design.Garden, we ensure compliance with federal, state, and local labor laws. Our commitment to adhering to these laws is critical to our operations in Madison, Wisconsin. Federal Labor Laws: […]

The post Compliance with Labor Laws appeared first on Design.Garden.

]]>
At Design.Garden, we ensure compliance with federal, state, and local labor laws. Our commitment to adhering to these laws is critical to our operations in Madison, Wisconsin.

  • Federal Labor Laws: We abide by the Fair Labor Standards Act (FLSA), which sets standards for minimum wage, overtime pay, recordkeeping, and youth employment. More information on the FLSA and other federal labor laws can be found on the U.S. Department of Labor website and the USA.gov labor laws page.
  • State Labor Laws: We abide by Wisconsin’s state-specific labor laws, which provide additional protections on a range of topics from minimum wage to workplace safety. More information on state labor laws is accessible through resources like the State Labor Law Topics on the U.S. Department of Labor’s website (we are based in Madison, Wisconsin).

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.

]]>
41406
Human Rights Statement https://design.garden/policies/human-rights-statement/ Thu, 14 Dec 2023 14:47:34 +0000 https://design.garden/?p=41386 At Design.Garden, we are dedicated to upholding the human rights of all individuals. Our operations and conduct are ethical, respectful, and legally compliant. We are committed to diversity, inclusiveness, and […]

The post Human Rights Statement appeared first on Design.Garden.

]]>
At Design.Garden, we are dedicated to upholding the human rights of all individuals. Our operations and conduct are ethical, respectful, and legally compliant. We are committed to diversity, inclusiveness, and social equity, underpinned by our core values. We pledge to respect the human rights of our employees, customers, and communities, and we expect the same of all our suppliers, partners and customers.

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.

]]>
41386
Debugging File Uploads https://design.garden/blog/debugging-file-uploads/ Fri, 08 Sep 2023 22:35:36 +0000 https://design.garden/?p=40745 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: Form […]

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:

  1. Form Submission
    • A user selects a file via the file input element on the form.
    • Upon form submission, the browser sends a request to the server. This request, specifically for file uploads, is typically a POST request encoded as multipart/form-data.
    • The chosen file is sent in chunks as a part of the request payload.
  2. Web Server Handling (Apache in this case)
    • The Apache server receives the incoming POST request.
    • Apache then processes the headers and the body of the request. For file uploads, Apache must handle the multipart/form-data encoding and segregate the different parts of the payload.
    • The uploaded file, while still in the process of being received, gets stored in a temporary location (typically /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.
  3. PHP’s Role
    • After the entire file is received and stored temporarily, PHP is invoked by Apache. The specifics of this depend on how PHP is integrated into Apache (e.g., mod_php or FastCGI).
    • PHP starts executing the script associated with the endpoint (in our case, upload.php).
    • PHP populates the $_FILES superglobal array. This array contains metadata about the file like its name, MIME type, the temporary storage location, etc.
    • In the PHP script, when you access $_FILES["fileToUpload"]["tmp_name"], you’re referencing the temporary location of the uploaded file.
    • The file remains in this temporary location until the PHP script finishes executing, unless it’s moved using functions like move_uploaded_file().
    • If you don’t move the uploaded file in your PHP script, the file will be automatically deleted from the temporary location after the script finishes executing.
  4. Completing the Upload in PHP
    • Using the move_uploaded_file() function, the PHP script moves the file from the temporary location to the desired location (e.g., an uploads directory).
    • If the move is successful, the file now resides in its final location. If not, as mentioned earlier, the file in the temporary location is discarded once the script completes.
  5. Response
    • PHP can send a response back to the client, which could be a confirmation message, an error, or any other relevant information.
    • This response is then received by the client’s browser, which can then act on it (e.g., displaying a success message or handling errors in JavaScript).

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:

php

<?php

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:

  1. HTML for the file upload form:
html
<!DOCTYPE html>
<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”>
Select file to upload:
<input type=“file” name=“fileToUpload” id=“fileToUpload”>
<input type=“submit” value=“Upload File” name=“submit”>
</form><div id=“debugInfo”></div>

<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>

  1. PHP for the file upload (upload.php):
php
<?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>”;
echo “Upload Temp Name: “ . $_FILES[“fileToUpload”][“tmp_name”] . “<br>”;
echo “Upload Type: “ . $_FILES[“fileToUpload”][“type”] . “<br>”;
echo “Upload Size: “ . ($_FILES[“fileToUpload”][“size”] / 1024) . ” kB<br>”;
echo “Upload Name: “ . $_FILES[“fileToUpload”][“name”] . “<br>”;
echo “Target File: “ . $target_file . “<br>”;
echo “File Type: “ . $imageFileType . “<br>”;if (move_uploaded_file($_FILES[“fileToUpload”][“tmp_name”], $target_file)) {
echo “The file “ . basename($_FILES[“fileToUpload”][“name”]) . ” has been uploaded.”;
} else {
echo “Sorry, there was an error uploading your file.”;
}
?>

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.

]]>
40745
Prevent Staging Websites from Sending Emails in IIS https://design.garden/blog/prevent-staging-websites-from-sending-emails-in-iis/ Sun, 07 May 2023 04:53:00 +0000 https://design.garden/?p=40641 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 […]

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.

  1. SMTP Settings for Web Applications:

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:

csharp
var smtpClient = new SmtpClient();
  1. What is a Pickup Directory?

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.

  1. Configuring ASP.NET SMTP to Use a Pickup Directory:

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:

  • The pickup directory must physically exist, as it won’t be created automatically.
  • IIS (or Cassini) must have write permissions to the pickup directory.
  • Check your code for hardcoded SMTP settings and ensure there are no custom settings used for SMTP.
  • Your emails will now be written to the pickup directory and not sent to recipients.
  1. Advanced Scenario: Configuring SmtpClient in Code:

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:

csharp
var smtpClient = new SmtpClient(); smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = pickupFolder;
  1. Using IIS SMTP Service Pickup Directory:

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:

csharp
SmtpDeliveryMethod.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.

]]>
40641
The Benefits of Using a Responsive Web Design Framework https://design.garden/blog/the-benefits-of-using-a-responsive-web-design-framework-2/ Mon, 01 May 2023 18:09:29 +0000 https://design.garden/?p=40562 Responsive web design is crucial in website development, enabling websites to adjust to various screen sizes and devices. This approach ensures that website content is easily accessible and readable, providing […]

The post The Benefits of Using a Responsive Web Design Framework appeared first on Design.Garden.

]]>
Responsive web design is crucial in website development, enabling websites to adjust to various screen sizes and devices. This approach ensures that website content is easily accessible and readable, providing a better user experience, increasing mobile traffic, and enhancing SEO. Using a responsive web design framework is a practical solution, providing a pre-written collection of CSS and JavaScript code for faster and more efficient website development. These frameworks ensure a consistent design, mobile-friendliness, and optimized performance for websites. Let’s explore these concepts a bit more in-depth and discuss some of the frameworks that are available. 

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:

  1. Improves User Experience: Responsive web design provides a better user experience by ensuring that website content is easily accessible and readable, regardless of the device being used.
  2. Increases Mobile Traffic: With more people using mobile devices to access the internet, responsive web design can help businesses increase their mobile traffic and reach a wider audience.
  3. Improves SEO: Google considers responsive web design as a ranking signal, which means that websites with responsive design are more likely to rank higher in search results than those without.

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:

  1. Faster Development Time: Responsive web design frameworks provide a starting point for website development, allowing developers to create websites quickly and efficiently.
  2. Consistent Design: Responsive web design frameworks provide a consistent design across all devices, ensuring that website content is easily accessible and readable, regardless of the device being used.
  3. Mobile-Friendly: Responsive web design frameworks are optimized for mobile devices, ensuring that website content is easily accessible and readable on smartphones and tablets.
  4. Improved Performance: Responsive web design frameworks are optimized for performance, ensuring that website content loads quickly and efficiently, improving the user experience.

What Responsive Web Design Frameworks are Available?

There are several responsive web design frameworks available, including:

  1. Bootstrap: Bootstrap is a popular responsive web design framework developed by Twitter that provides a collection of CSS and JavaScript code for website development.
  2. Foundation: Foundation is a responsive web design framework developed by ZURB that provides a collection of CSS and JavaScript code for website development.
  3. Materialize: Materialize is a responsive web design framework based on Google’s Material Design guidelines that provides a collection of CSS and JavaScript code for website development.

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.

]]>
40562
The Role of Web Development in Digital Marketing https://design.garden/blog/the-role-of-web-development-in-digital-marketing/ Mon, 01 May 2023 17:24:01 +0000 https://design.garden/?p=40544 Digital marketing is a powerful tool for businesses to reach a wider audience and achieve their marketing goals. However, the success of digital marketing efforts heavily relies on the website, […]

The post The Role of Web Development in Digital Marketing appeared first on Design.Garden.

]]>
Digital marketing is a powerful tool for businesses to reach a wider audience and achieve their marketing goals. However, the success of digital marketing efforts heavily relies on the website, which serves as the first point of contact with potential customers. We will explore the critical role of web development in digital marketing and how a well-designed and optimized website can help businesses establish credibility, improve user experience, and drive conversion. Discover how you can improve your website for digital marketing success through responsive design, fast loading times, clear navigation, and conversion optimization techniques.

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:

  1. Reach a Wider Audience: Digital marketing allows businesses to reach a wider audience than traditional marketing methods, such as print or television advertising.
  2. Target Specific Audiences: Digital marketing allows businesses to target specific audiences based on demographics, interests, and behavior, increasing the likelihood of conversion.
  3. Measure ROI: Digital marketing provides businesses with tools to measure the effectiveness of their marketing efforts and make data-driven decisions to improve ROI.

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:

  1. Providing a Professional Online Presence: A professional-looking website can help businesses establish credibility and trust with potential customers.
  2. Improving User Experience: A well-designed website can provide a better user experience, increasing the likelihood of engagement and conversion.
  3. Optimizing for Search Engines: A website optimized for search engines can improve its search engine ranking, increasing the likelihood of being found by potential customers.
  4. Integrating with Digital Marketing Channels: A website can be integrated with other digital marketing channels, such as social media and email marketing, to create a cohesive marketing strategy.

How Can You Improve Your Website for Digital Marketing?

Improving your website for digital marketing involves several factors, including:

  1. Responsive Design: Ensure your website is optimized for mobile devices and other screen sizes.
  2. Fast Loading Times: Improve the loading times of your website by optimizing images and minimizing HTTP requests.
  3. Clear Navigation: Make sure your website is easy to navigate by using clear and concise labels for your navigation menu.
  4. Conversion Optimization: Use conversion optimization techniques, such as call-to-action buttons and lead magnets, to increase the likelihood of conversion.

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.

]]>
40544
Mastering Your Online Presence with Content Management Systems (CMSs) https://design.garden/blog/mastering-your-online-presence-with-content-management-systems-cmss/ Mon, 01 May 2023 17:05:10 +0000 https://design.garden/?p=40542 Are you struggling to manage your website content? A Content Management System (CMS) may be the solution you’re looking for. CMSs allow businesses to create, manage, and publish digital content […]

The post Mastering Your Online Presence with Content Management Systems (CMSs) appeared first on Design.Garden.

]]>
Are you struggling to manage your website content? A Content Management System (CMS) may be the solution you’re looking for. CMSs allow businesses to create, manage, and publish digital content easily, without requiring any technical knowledge. In this post, we’ll explore the importance of CMSs and the benefits they can bring to your business. We’ll also highlight some of the most popular CMSs available.

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:

  1. Easy Website Management: CMSs allow businesses to manage their website content easily, including adding new pages, updating existing content, and publishing blog posts.
  2. Improved Collaboration: CMSs allow multiple users to work on the same content simultaneously, improving collaboration and productivity.
  3. Customization: CMSs allow businesses to customize their website design and functionality, providing a unique online presence that reflects their brand.
  4. SEO Optimization: CMSs provide built-in SEO optimization features, such as meta tags and keyword optimization, that can help businesses improve their website’s search engine ranking.

 

What CMSs are Available?

There are several CMSs available, including:

  1. WordPress: WordPress is the most popular CMS, powering over 40% of all websites on the internet. It provides a user-friendly interface and a vast library of plugins and themes to customize your website.
  2. Drupal: Drupal is an open-source CMS that provides advanced customization options and a robust content management system.
  3. Joomla: Joomla is another popular CMS that provides a user-friendly interface and a vast library of extensions and templates.
  4. Shopify: Shopify is a CMS designed specifically for e-commerce businesses, providing a user-friendly interface and built-in e-commerce features.
  5. Squarespace: Squarespace is a popular CMS for businesses that want to create a professional-looking website quickly and easily.

 

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.

]]>
40542