Absolutely! Here’s a comprehensive tutorial and troubleshooting guide for sending email from a GoDaddy VPS Server with cPanel + WHM. This includes PHP mail()
, SMTP setup, logs, DNS settings, and common issues with solutions.
Sending Emails from GoDaddy VPS with cPanel + WHM
1. How Email Sending Works on a cPanel VPS
Component | Role |
---|---|
Exim | The default Mail Transfer Agent (MTA) |
PHP | Uses Exim via /usr/sbin/sendmail for mail() |
WHM | Manages global email delivery, logs, limits |
cPanel | Manages email accounts and per-domain settings |
2. Send Email Using PHP’s mail()
Function
Step 1: Create a PHP Script
<?php
$to = "your@email.com";
$subject = "Test Email from GoDaddy VPS";
$message = "This is a test email sent using PHP.";
$headers = "From: noreply@yourdomain.com";
if (mail($to, $subject, $message, $headers)) {
echo "
Email sent successfully.";
} else {
echo "
Email sending failed.";
}
?>
Save this as mailcheck.php
inside your website’s public_html folder.
Step 2: Access in Browser
Visit:
https://yourdomain.com/mailcheck.php
You should see “ Email sent successfully.”
3. Check Email Logs
SSH into the VPS:
sudo tail -f /var/log/exim_mainlog
Other useful logs:
/var/log/exim_paniclog
– for fatal errors/var/log/exim_rejectlog
– for rejected messages
4. Configure SPF, DKIM, and DMARC (Important for Delivery)
SPF & DKIM
- Go to WHM > Email > Email Deliverability
- Choose your domain
- Click “Repair” if SPF or DKIM are missing
- Copy the suggested DNS records to your GoDaddy DNS
DMARC (Optional but Recommended)
Add this TXT record in DNS:
Name: _dmarc.yourdomain.com
Type: TXT
Value: v=DMARC1; p=none; rua=mailto:you@yourdomain.com
5. Send Email via SMTP (More Reliable)
Use this when sending emails from contact forms, apps, or Laravel/WordPress.
Create an Email Account
In cPanel > Email Accounts, create:
- Email:
info@yourdomain.com
- Password:
your_password
Use PHPMailer (Example)
Install:
composer require phpmailer/phpmailer
Code:
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'mail.yourdomain.com';
$mail->SMTPAuth = true;
$mail->Username = 'info@yourdomain.com';
$mail->Password = 'your_password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('info@yourdomain.com', 'Your Name');
$mail->addAddress('recipient@example.com');
$mail->Subject = 'SMTP Test Email';
$mail->Body = 'This email is sent using SMTP and PHPMailer.';
if ($mail->send()) {
echo '
Mail sent!';
} else {
echo '
Mail failed: ' . $mail->ErrorInfo;
}
6. Common Issues & Troubleshooting
Problem | Solution |
---|---|
mail() fails silently | Check /var/log/exim_mainlog |
Mail lands in spam | Setup SPF/DKIM/DMARC correctly |
Mail delivery delays | Check WHM > Mail Queue Manager |
PHP can’t find sendmail | Ensure /usr/sbin/sendmail exists (default in WHM) |
SMTP auth fails | Double-check credentials, port 587 with TLS |
GoDaddy blocking ports | VPS is usually open, but shared hosting blocks SMTP ports |
7. Tips for Deliverability
- Use a real domain and valid “From” address (avoid
noreply@localhost
) - Keep your IP clean (avoid spamming)
- Use
List-Unsubscribe
headers for bulk email - Monitor bounces and complaints
8. Bonus: Webmail Testing
You can also send test emails from:
- Webmail: Access via
https://yourdomain.com/webmail
- Login with the email you created in cPanel
Tools Recap
Tool/Feature | Where |
---|---|
Email Accounts | cPanel |
Mail Logs | /var/log/exim_mainlog |
DNS Settings | WHM > Email Deliverability |
Webmail Access | https://yourdomain.com/webmail |
Mail Queue | WHM > Mail Queue Manager |
SMTP Credentials | cPanel > Email Accounts |
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I am working at Cotocus. I blog tech insights at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at I reviewed , and SEO strategies at Wizbrand.
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at PINTEREST
Rajesh Kumar at QUORA
Rajesh Kumar at WIZBRAND