【发布时间】:2011-06-18 11:15:56
【问题描述】:
我正在使用 godaddy 来托管我的网站并使用默认的 godaddy 邮件服务。 现在我想使用 php 邮件功能从我的 Godaddy 电子邮件帐户的 15 个电子邮件地址中的 1 个发送电子邮件到其他电子邮件地址
我该如何解决从哪个电子邮件地址发送电子邮件以及如何放置电子邮件地址的用户名和密码?
谢谢
【问题讨论】:
我正在使用 godaddy 来托管我的网站并使用默认的 godaddy 邮件服务。 现在我想使用 php 邮件功能从我的 Godaddy 电子邮件帐户的 15 个电子邮件地址中的 1 个发送电子邮件到其他电子邮件地址
我该如何解决从哪个电子邮件地址发送电子邮件以及如何放置电子邮件地址的用户名和密码?
谢谢
【问题讨论】:
PHP mail 函数使用为该虚拟主机配置的邮件服务器。你无法改变这一点。由于 godaddy 控制着邮件服务器,因此他们控制着它发送的标头。您可以尝试插入自定义 From 标头,但我怀疑这会起作用。它将被修改、标记为垃圾邮件或被拒绝。
如果您在 godaddy 拥有 15 个帐户,也许是时候寻找更严肃的托管解决方案了?
【讨论】:
不要使用 mail() 函数,它只是调用操作系统的邮件函数(即 sendmail),试试 SwiftMail(免费的 PHP 邮件库)之类的东西。它支持多种不同的发送邮件方式,包括登录邮件帐户和发送电子邮件,就像您在自己的计算机上一样。如果需要,您甚至可以从 gmail 帐户发送电子邮件。
【讨论】:
我正在使用 Godaddy 托管。只需将一些字段留空并发送邮件即可。 请看下面的代码它对我有用。
<?php
include("class.phpmailer.php");
function sendMail($address,$username,$body){
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
//$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
// $mail->SMTPAuth = true; // enable SMTP authentication
// $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
// $mail->Host = "smtp.gmail.com"; // sets as the SMTP server
// $mail->Port = 465; // set the SMTP port for the server
// $mail->Username = "xyz@gmail.com"; // username
// $mail->Password = "test121232"; // password
$mail->SetFrom('contact@example.co.in', 'Contact');
$mail->Subject = "Enquiry for tour and travels package";
$mail->MsgHTML($body);
$address = $address;
$mail->AddAddress($address, $username);
$mail->AddCC('contact@example.co.in');
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
?>
刚刚改了邮箱地址,所以你可以通过这个邮箱地址发送邮件。
$mail->SetFrom('youremail@example.co.in', 'Contact');
【讨论】:
我在几个客户帐户上遇到过这个问题。 在玩了很多之后,我发现你使用什么电子邮件应用程序或代码并不重要。 我终于比较了两个帐户。一种我知道电子邮件是从 PHP 发送的,另一种是我不知道的。我发现的区别是:
工作帐户在域中有这 2 个 dns 条目:
以及在CPanel区域编辑器中设置的MX条目:
不工作的帐户是相同的,只是它没有上面提到的 CNAME 条目。我添加了它,等了几分钟,再次测试了我的代码,我终于开始收到来自我的代码的电子邮件!
【讨论】: