Mastering Email Sending in PHP with PHPMailer and the mail() Function
Most businesses create a professional email account to boost their credibility and build customer trust. To accomplish this, you need a domain and an email client.
Understanding PHP Email Sending Options
If you build your website or web application using PHP, you’re in luck when it comes to sending emails. PHP provides the built-in mail()
function, and for more advanced needs, there’s PHPMailer. These tools enable you to craft custom mail forms and send emails directly from your web server.
We’ll explore the differences between PHPMailer and the mail()
function and guide you on sending emails using both methods.
What is PHP Mail?
PHP mail is a function that sends emails using PHP scripts. The built-in PHP function can target multiple recipients per email sending. However, it isn’t suitable for bulk emailing without using an external PHP mailing package like PHPMailer.
PHPMailer vs mail() function: Pros and Cons
The PHP mail()
function is a simple, native way to send emails via PHP scripts. It’s easy to use but lacks modern authentication features, often resulting in emails landing in spam folders. On the other hand, PHPMailer offers advanced features like HTML bodies, attachments, and secure connections with SPF and DKIM authentication, making it more suitable for bulk or secure email sending.
Advantages of PHP mail()
- Pre-installed and ready to use with PHP.
- Backward-compatible with PHP versions.
- Easy to learn and implement.
Disadvantages of PHP mail()
- Outdated method without modern authentication support.
- Emails often land in spam due to missing authentication.
- Complex SMTP setup increases spam filter triggers.
- Limited in handling large volumes of emails.
Advantages of PHPMailer
- Secure email sending with SPF and DKIM authentication.
- Simple configuration for HTML emails and attachments.
- Supports SMTP with SSL and TLS encryption.
- Efficiently handles large volumes of emails.
Disadvantages of PHPMailer
- Requires manual installation via SSH, not available on all hosting plans.
- Steeper learning curve compared to
mail()
.
Important! For Hostinger users, keep in mind that the current limits for emails sent via PHP mail() are 100/day and 10/minute. These limits will reset every 24 hours.
How to Use PHPMailer to Send Emails
To increase deliverability and avoid spam filters, it’s recommended to use an authenticated SMTP connection with PHPMailer. Here’s a step-by-step guide on setting it up.
Installing PHPMailer
Installing PHPMailer is quite simple, especially when using Composer. Note that Hostinger‘s Premium and Business plans come pre-installed with Composer. Use SSH to install PHPMailer:
- Access SSH via your hPanel dashboard.
- Navigate to your
public_html
directory. - Run
composer require phpmailer/phpmailer
to install PHPMailer.
Learn more about SSH commands to manage your server effectively.
Understanding PHPMailer Components
PHPMailer’s functionality is built around its components, which include SMTP configurations, email setup, and message handling. Understanding these elements is crucial for successful email sending.
use PHPMailer\PHPMailer\PHPMailer;
– Imports the PHPMailer class.$mail = new PHPMailer;
– Creates a new PHPMailer object.$mail->isSMTP();
– Uses custom SMTP configuration.$mail->Host
and$mail->Port
– Define SMTP server and port.$mail->SMTPAuth = true;
– Activates SMTP authentication.$mail->setFrom()
and$mail->addReplyTo()
– Set sender and reply-to addresses.$mail->addAddress()
– Specifies recipient email.$mail->Subject
and$mail->Body
– Define email subject and body.
Using PHPMailer with <a href=”https://hostinger.com?REFERRALCODE=1CRYPTO99″ rel=”sponsored noopener” target=”_blank”>Hostinger</a> SMTP
To send emails with PHPMailer via Hostinger SMTP, follow these steps:
- Create an email account in hPanel.
- Configure SMTP settings: port and hostname.
- Create and edit a
phpmailer.php
file with the necessary SMTP code. - Test the script by accessing
yourdomain.tld/phpmailer.php
in a browser.
Creating a PHPMailer Contact Form
PHPMailer can also be used to create contact forms. This allows users to submit feedback or inquiries through your website. Here’s a basic example of how to create a contact form using PHPMailer:
- Create a new PHP file in
public_html
and name itformscript.php
. - Implement the form in HTML with PHP mail logic to handle submissions.
- Ensure to sanitize user input to prevent XSS attacks.
Consider using a WordPress plugin like WPForms for easier form creation.
How to Send Emails Using the PHP mail() Function
The PHP mail()
function offers a straightforward way to send emails from your server. It’s ideal for simple emails but requires careful configuration to avoid spam issues.
Understanding PHP mail Components
The PHP mail()
function consists of several components:
$from
– Sender’s email address.$to
– Recipient’s email address.$subject
– Email subject line.$message
– Body of the email.$headers
– Additional headers such as From and Reply-To.
Creating a Test File for PHP mail
To test the PHP mail()
function, create a PHP file in public_html
and execute it from your browser. Include all necessary parameters and error reporting to ensure functionality.
Sending HTML Emails with PHP
HTML emails offer more customization than plain text. To send HTML emails, add a content-type header and format the message in HTML:
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
Troubleshooting Common PHP mail and PHPMailer Errors
Sender Address Rejected
This error often indicates issues with authentication. Verify the email address and ensure SPF is enabled.
Gmail Couldn’t Verify Message
This warning arises from missing SPF records or invalid SMTP details. Ensure proper SPF configuration and use a valid email address.
Mail Goes to Spam Folder
Common causes include misleading subjects, incorrect sender addresses, and missing unsubscribe links. Ensure clear intent and correct addresses.
Could Not Connect to SMTP Host
This error may result from strict SSL behavior in newer PHP versions. Adjust your SMTP options to allow self-signed certificates if necessary.
Consider migrating to Hostinger‘s business email service for smoother operations.
Conclusion
Sending emails in PHP is possible with the mail()
function or PHPMailer. While the former is suitable for simple messages, PHPMailer is better for complex and bulk emailing needs. By leveraging these tools, you can customize your email functionality on your website.
If you’re ready to boost your website’s email capabilities, consider using Hostinger for reliable hosting and email services.
FAQ
Can I send emails from PHPMailer to Gmail or other email services?
This depends on your hosting provider. With Hostinger, you can send emails to services like Gmail without issues.
How can I validate email addresses before using PHP functions?
Use the filter_var()
function with FILTER_VALIDATE_EMAIL
to ensure email addresses are valid and properly formatted.
Starter Pack
Download glossary for web beginners
- What is PHP mail?
- PHPMailer vs mail() function: pros and cons
- How to use PHPMailer to send emails
- Installing PHPMailer
- Understanding PHPMailer components
- Using PHPMailer with <a href=”https://hostinger.com?REFERRALCODE=1CRYPTO99″ rel=”sponsored noopener” target=”_blank”>Hostinger</a> SMTP
- Creating a PHPMailer contact form
- How to send emails using the PHP mail() function
- Understanding PHP mail components
- Creating a test file for PHP mail
- Sending HTML emails with PHP
- How to troubleshoot common PHP mail and PHPMailer errors
- Sender address rejected: not owned by the user
- Gmail couldn’t verify that domain.tld sent this message
- Mail goes to the spam folder
- Could not connect to SMTP host
- PHP mail FAQ
- Can I send emails from PHPMailer to Gmail or other email services?
- How can I validate email addresses before using the PHP mail() function or PHPMailer to send emails?
👉 Start your website with Hostinger – get fast, secure hosting here 👈
🔗 Read more from MinimaDesk:
- How to Disable xmlrpc.php in WordPress: A Step-by-Step Guide
- The Ultimate Guide to WP-Content: Access, Upload, and Hide Your WordPress Directory
- How Many WordPress Plugins Are Too Many? Optimize Your Site for Success
- Mastering WordPress: Solving Broken Permalinks Effortlessly
🎁 Download free premium WordPress tools from our Starter Tools page.