更改服务器中使用的电子邮件地址

时间:2011-12-22 08:03:03

标签: php mysql email

我正在建立一个系统,每当用户在我的网站上注册时,它都会自动发送确认电子邮件。
我的问题是使用的电子邮件以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);
        }

任何帮助都将受到极大的赞赏和奖励!

3 个答案:

答案 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地址)。

参考:PHP Manual: mail

答案 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()中提到了所有这些。