PHPMailer来自显示为Root用户

时间:2013-10-17 21:21:42

标签: php

我正在使用PHP Mailer发送电子邮件,而我正在使用SMTP

这是我正在使用的代码:

$email = new PHPMailer();

            $email->IsSMTP(); // telling the class to use SMTP
            $email->Host       = "mail.integradigital.co.uk"; // SMTP server
            $email->SMTPDebug  = 2; // enables SMTP debug information (for testing)
                                                       // 1 = errors and messages
                                                       // 2 = messages only
            $email->SMTPAuth   = true;  // enable SMTP authentication
            $email->Host       = "mail.integradigital.co.uk"; // sets the SMTP server
            $email->Port       = 26;    // set the SMTP port for the GMAIL server
            $email->Username   = "sending@************.co.uk"; // SMTP account username
            $email->Password   = "********";        // SMTP account password

            $email->SetFrom($result["emailfrom"]);
            $email->FromName($result["emailfrom"]);

            $email->Subject   = $result["subject"];
            $email->Body      = $result["message"];

但它从 Root用户 - root @ localhost

发送和显示

我知道我可以在class.phpmailer.php文件中更改它,但我希望能够在上面的代码中设置它

这可能吗?

7 个答案:

答案 0 :(得分:12)

好的,简而言之:

$email->From = "email.address@gmail.com";
$email->FromName = "Support Team";

这对我有用。

答案 1 :(得分:8)

将整个东西包裹起来。并在启用异常的情况下初始化phpmailer

$email = new PHPMailer(true);

看起来使用了默认值。所以在致电setFrom()时会出现问题。并且它无声地失败,因为它在没有启用异常的情况下返回false

try {
  // your mail code here
} catch (phpmailerException $e) {
  echo $e->getMessage();
}

并将电子邮件的设置更改为:

$email->setFrom($result["emailfrom"], $result["emailfrom"]);

FromName是属性而不是方法。

答案 2 :(得分:2)

class.phpmailer.php文件包含“ var $ FromName ='Root User';”可以从“根用户”更改为“所需名称”部分,并完成您的工作。

答案 3 :(得分:1)

当您收到1. 电子邮件和2. 名称时,它应该位于表单中

  1. <input type="text" name="emailfrom">

  2. <input type="text" name="namefrom">

在您的php代码中,它应该看起来像这样。

$mail->setFrom($_POST['emailfrom'],$_POST['namefrom']);

当我在infinityhost上使用这些设置时遇到同样的问题,希望对您有所帮助。

$mail->Port = 587; // Which port to use, 587 is the default port for TLS security.
$mail->SMTPSecure = 'tls'; // Which security method to use. TLS is most secure.```

答案 4 :(得分:0)

当我只将setFrom()的第一个参数发送为name <email>时,我遇到了这个问题。

setFrom()不知道如何解析这种结构。

更改为两个单独的参数解决了问题。

答案 5 :(得分:0)

对于PHPMailer版本:5.1

这对我有用:

    $mail->SetFrom('no-reply@example.com', 'Name From');

希望它能起作用。

答案 6 :(得分:-1)

使用:

$mail->setFrom('here email add of sender','here name of the sender');

第一个参数是电子邮件地址,如果它为空或不是有效的电子邮件地址,则在使用php mailer发送邮件时将以ROOT用户身份显示