1在DNS上port80和MX分开的域:
- 网站托管在VPS上
- 电子邮件托管在共享主机上。
当我在网站上调用PHP中的mail()函数时,该函数的地址是域上的电子邮件,电子邮件被本地传递到VPS而不是共享服务器。
在PHP运行的web主机VPS使用域名MyDomain.com:
$headers = "From: MyName <name1@MyDomain.com>'r'n";
$headers .="Return-Path:<name1@MyDomain.com>'r'n";
mail( "name2@MyDomain.com", "Header", "Content", $headers);
如何强制mail()为域做MX查找?如何将邮件发送到共享主机而不是VPS?
我试着这样做,但它没有工作:
ini_set("SMTP","123.456.789.012");
其中123.456.789.012为共享主机的ip。
共享主机为hostmonster。是否有一种方法来指定使用ip和用户名的电子邮箱?name2 ~ username@123.456.789.012
删除mail()函数,使用PHPMailer。它更灵活,是面向对象的,更容易配置SMTP,并有更好的附件支持(如果你需要的话)。
要在phpmailer中发送电子邮件,您只需要这样设置您的SMTP:
$mailer = new PHPMailer();
$mailer->Mailer = 'smtp';
$mailer->Host = '123.456.789.012';
$mailer->From = 'me@myself.com';
$mailer->FromName = 'Me Myself';
$mailer->AddAddress = 'someRecipient@whatever.com';
$mailer->Subject = 'My subject line';
$mailer->Body = 'Your Body text here, in HTML if you set $mailer->IsHtml(true)';
$mailer->Send();
问题是您的VPS服务器配置为处理您的域的邮件。相应地调整您的邮件配置。此外,Linux会忽略SMTP设置。只有Windows使用这个
或者,您可以使用PHPMailer之类的类,它可以直接连接到远程SMTP服务器。