我们使用托管公司来托管我们的网站,但我们的邮件服务器由我们的 ISP 托管,我们的网站域名为;@sample.net。
SMTP mail.isp.com
在网站上,我们有一个联系表格,可以发送电子邮件[电子邮件保护]用户提交后。
使用默认设置:
SMTP localhost
sendmail_path /usr/sbin/sendmail -t -i
以及自定义设置:
sendmail_from [email protected]
我能够成功将邮件发送到 @sample.com 以外的外部域。经过调查,我认为这是因为 SMTP 是本地主机,没有正确指向我们的 ISP 邮件服务器。
如果我有一个外部公司托管该网站,并且我们的邮件服务器由我们的 ISP 托管,那么我应该在 SMTP 中放置什么值?
答案1
除了 @adamo 所说的确实可能之外,您还可以尝试使用以下方式发送邮件PEAR::邮件。
这里有一些来自 unixcraft 的示例代码,您可以尝试一下。
<?php
include("Mail.php");
/* mail setup recipients, subject etc */
$recipients = "[email protected]";
$headers["From"] = "[email protected]";
$headers["To"] = "[email protected]";
$headers["Subject"] = "User feedback";
$mailmsg = "Hello, This is a test.";
/* SMTP server name, port, user/passwd */
$smtpinfo["host"] = "smtp.mycorp.com";
$smtpinfo["port"] = "25";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = "smtpusername";
$smtpinfo["password"] = "smtpPassword";
/* Create the mail object using the Mail::factory method */
$mail_object =& Mail::factory("smtp", $smtpinfo);
/* Ok send mail */
$mail_object->send($recipients, $headers, $mailmsg);
?>
另一个解决方案(如果您希望所有邮件都通过远程邮件服务器)是配置同步邮件传输协议作为您的 sendmail 二进制文件。
答案2
问题在于,您域的 MX 服务器(位于您的 ISP)不接受从其他地方(ISP 之外)发送的、声称来自您的合法电子邮件。您必须联系 ISP 的邮件技术支持(这不是“我的 Outlook 无法正常工作”之类的一级支持请求)并解决此问题。
我曾在博客中讨论过类似的案例这里。
对于您来说,简单的解决方案可能是 ISP 允许您的网络主机连接到 smtp.sample.net 并从那里发送邮件。