Я использую 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 User – root @ localhost
Я знаю, что могу изменить это в файле class.phpmailer.php, но я хочу иметь возможность установить его в коде выше
Это возможно?
Оберните все это в попытке поймать. И инициализировать 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
– свойство, а не метод.
Хорошо, короче:
$email->From = "email.address@gmail.com"; $email->FromName = "Support Team";
Это сработало для меня.
У меня была эта проблема, когда я отправлял только первый параметр в setFrom()
, как name <email>
.
setFrom()
не знал, как разбирать эту конструкцию.
Изменение на два отдельных параметра решило проблему.