Рендеринг тела PHPMailer html [дубликат]

В дополнение к тому, что уже было опубликовано, вы должны знать, что со времени Java 8 мы можем сократить наш код и записать его так:

Collection.sort(yourList, Comparator.comparing(YourClass::getFieldToSortOn));

или поскольку у List теперь есть метод sort

yourList.sort(Comparator.comparing(YourClass::getFieldToSortOn));

Объяснение:

Начиная с Java 8, функциональные интерфейсы (интерфейсы только с одним абстрактным методом - они могут иметь больше стандартных или статических методов) могут быть легко реализованы с использованием:

  • lambdas arguments -> body
  • Ссылки на
  • или source::method.

Поскольку Comparator имеет только один абстрактный метод int compare(T o1, T o2), это функциональный интерфейс.

Итак, вместо (пример из @BalusC answer )

Collections.sort(contacts, new Comparator() {
    public int compare(Contact one, Contact other) {
        return one.getAddress().compareTo(other.getAddress());
    }
}); 

мы можем уменьшить этот код до:

Collections.sort(contacts, (Contact one, Contact other) -> {
     return one.getAddress().compareTo(other.getAddress());
});

Мы можем упростить эту (или любую) лямбда, пропустив типы аргументов

  • (Java будет их выводить основанный на сигнатуре метода)
  • или {return ... }

Итак, вместо

(Contact one, Contact other) -> {
     return one.getAddress().compareTo(other.getAddress();
}

мы можем написать

(one, other) -> one.getAddress().compareTo(other.getAddress())

Также теперь Comparator имеет статические методы, такие как comparing(FunctionToComparableValue) или comparing(FunctionToValue, ValueComparator), которые мы могли бы легко использовать для создания atat Comparators, которые должны сравнивать некоторые конкретные значения от объектов.

Другими словами, мы можем переписать выше код как

Collections.sort(contacts, Comparator.comparing(Contact::getAddress)); 
//assuming that Address implements Comparable (provides default order).

17
задан user580950 21 June 2012 в 15:27
поделиться

8 ответов

Вызов метода isHTML() после свойства экземпляра Body (я имею в виду $mail->Body) был задан для меня проблемой:

$mail->Subject = $Subject;
$mail->Body    = $Body;
$mail->IsHTML(true);       // <=== call IsHTML() after $mail->Body has been set.
51
ответ дан Nabil Kadimi 1 September 2018 в 07:35
поделиться

// Извините мой начальный английский

Существует метод msgHTML (), который также вызывает вызов IsHTML ().

Hrm ... name IsHTML запутан. ..

/**
 * Create a message from an HTML string.
 * Automatically makes modifications for inline images and backgrounds
 * and creates a plain-text version by converting the HTML.
 * Overwrites any existing values in $this->Body and $this->AltBody
 * @access public
 * @param string $message HTML message string
 * @param string $basedir baseline directory for path
 * @param bool $advanced Whether to use the advanced HTML to text converter
 * @return string $message
 */
public function msgHTML($message, $basedir = '', $advanced = false)
5
ответ дан Atombit 1 September 2018 в 07:35
поделиться

вам нужно передать true как аргумент функции IsHTML ().

-1
ответ дан Ibrahim Khan 1 September 2018 в 07:35
поделиться

Что чуть не убило меня, я определил $ mail-> AltBody. После этого все работало

-3
ответ дан Leendert 1 September 2018 в 07:35
поделиться

, или если у вас все еще есть проблемы, вы можете использовать это

$mail->Body =  html_entity_decode($Body);
2
ответ дан Luv 1 September 2018 в 07:35
поделиться

В версии 5.2.7 я использую это для отправки обычного текста: $mail->set('Body', $Body);

0
ответ дан Mladen Janjetovic 1 September 2018 в 07:35
поделиться

все, что вам нужно сделать, это просто добавить $ mail-> IsHTML (true); к коду он отлично работает.

-2
ответ дан odide 1 September 2018 в 07:35
поделиться

сделайте так: вставьте свой html-код в свой отдельный файл html с помощью метода GET.

$mail->IsHTML(true);                                 
    $mail->WordWrap = 70;                                 
    $mail->addAttachment= $_GET['addattachment']; $mail->AltBody   
    =$_GET['AltBody'];  $mail->Subject = $_GET['subject']; $mail->Body = $_GET['body'];
-2
ответ дан shailendra pathak 1 September 2018 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: