Не удалось загрузить языковую строку: from_failed [from_email_address] - PullRequest
5 голосов
/ 02 февраля 2012

Я получил эту ошибку при попытке отправить электронное письмо с помощью smtp:

Language string failed to load: from_failed**myemail@gmail.com**

Вот мой код:

$mail = new PHPMailer();
                    //$mail->SetLanguage('en',dirname(__FILE__) . '/phpmailer/language/');
                    $SMTP_Host = "smtp.gmail.com";
                    $SMTP_Port = 465;
                    $mail->SMTPSecure = 'ssl';

                    $SMTP_UserName = "myemail@gmail.com";
                    $SMTP_Password = "****";
                    $from = "myemail@gmail.com";
                    $fromName = "My Name";
                    $to = "destination@gmail.com";

                    $mail->IsSMTP();
                    $mail->Host     = $SMTP_Host;
                    $mail->SMTPAuth = true;


                    $mail->Username = $SMTP_UserName;
                    $mail->Password = $SMTP_Password;

                    $mail->From     = "myemail@gmail.com";
                    $mail->FromName = "From Name";
                    $mail->AddAddress("myemail@gmail.com");
                    $mail->AddReplyTo($from, $fromName);

                    $mail->IsHTML(true);

                    $mail->Subject  =  "This is an message from our website";
                    $mail->Body     =  $design;

                    if(!$mail->Send())
                    {

                       echo "Error : " . $mail->ErrorInfo;
                       exit;
                    }

Как я могу это исправить?

Ответы [ 3 ]

7 голосов
/ 02 февраля 2012

Обычно это означает, что ваш класс phpMailer не может найти языковой файл, когда пытается выложить сообщение.

Самый простой способ исправить это - установить язык вручную, включая путь к языковой папке:

$mail = new PHPMailer();
$mail->SetLanguage("en", 'includes/phpMailer/language/');

Это в вашей языковой папке.Или вы можете просто указать свой SetLanguage метод на этот источник:

  1  <?php
   2  /**
   3   * PHPMailer language file.  
   4   * English Version
   5   */
   6  
   7  $PHPMAILER_LANG = array();
   8  
   9  $PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' .
  10                                       'recipient email address.';
  11  $PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.';
  12  $PHPMAILER_LANG["execute"] = 'Could not execute: ';
  13  $PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.';
  14  $PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.';
  15  $PHPMAILER_LANG["from_failed"] = 'The following From address failed: ';
  16  $PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' .
  17                                         'recipients failed: ';
  18  $PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.';
  19  $PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.';
  20  $PHPMAILER_LANG["file_access"] = 'Could not access file: ';
  21  $PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: ';
  22  $PHPMAILER_LANG["encoding"] = 'Unknown encoding: ';
  23  ?>
1 голос
/ 12 ноября 2018

Вы можете использовать функцию внутренней почты системы. В этом случае phpMailer не смог правильно соединиться с SMTP. Лучше использовать серверную функцию mail для отправки почты с phpMailer.

заменить

$mail->IsSMTP();

до

$mail->Mailer = "mail";

Надеюсь, теперь ваши скрипты работают нормально, потому что мы используем системную внутреннюю функцию 'mail' с функциями phpMailers.

0 голосов
/ 15 сентября 2015

Если вы используете SMTP, проверьте имя пользователя и пароль SMTP.У меня была такая же проблема, пароль gmail был обновлен клиентом.

...