我正在建立一个系统,每当用户在我的网站上注册时,它都会自动发送确认电子邮件。
我的问题是使用的电子邮件以info@buick.websitewelcome.com结尾,这很奇怪,因为我的网站不是buick.websitewelcome.com。
我期待的电子邮件应该是info@myaddress.info。
我该怎么做,我正在使用CPanel FYI。
这也是我发送确认地址时的代码
function SendUserEmailVerificationCode( $code,$username,$email_address ) {
// multiple recipients
$to = $email_address;
// subject
$subject = 'Verification Code';
// message
$message = "
Dear ".$username."<br><br>
You received this email because you registered at http://myaddress.info/.<br>
To complete registration please enter this registration code<h1>".$code."</h1></strong> on the link below:<br>
http://myaddress.info/verifyMe.php?username=".$username."
";
$headers = 'From: info@myaddress.info' . "\r\n";
// To send HTML mail, the Content-type header must be set
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
}
任何帮助都将受到极大的赞赏和奖励!
答案 0 :(得分:1)
尝试命令行参数-f,如http://php.net/manual/en/function.mail.php#example-3048
所示<?php
mail('nobody@example.com', 'the subject', 'the message', null,
'-fwebmaster@example.com');
?>
答案 1 :(得分:1)
-f将设置From地址,-r将覆盖sendmail生成的默认返回路径(通常使用From地址)。
答案 2 :(得分:1)
mail()
函数中的第四个参数用于标题,因为您已经注意到了。只需添加From
标头即可。这将改变from字段。
$headers .= 'From: info@mywebaddress.com'."\r\n";
此外,如果您还想从(您可能想要)更改信封邮件,则可以使用第五个参数。这用于应该直接传递给sendmail
的选项。在这里,您应该添加-f info@mywebaddress.com
。一个简单的例子如下所示。
mail('recipient@domain.com', 'Subject', 'Message',
'From: info@myaddress.info','-f info@myaddress.info');
而且,the official PHP manual on mail()
中提到了所有这些。