Отправить письмо с PHPMailer - создать и прикрепить .txt - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть форма, и я хочу поместить полученные данные из формы в файл .txt и прикрепить к почте. Без сохранения на сервер. Как создать и прикрепить этот файл к почте? Глядя на пример, который поставляется с PHPMailer, я не могу найти ответ на свой вопрос.

< php
if ($_POST[ 'message' ] == '' ) {
	$nosketch = '<p>The user has not provided sketch.</p>';
} else {
	$body .= "\n\n--" . $bound . "\n";
	$attachment = $_POST[ 'message' ];
	$file_name = "mol_" . time() . ".txt";
	$body .= "Content-Type: text/plain; name=" . $file_name . "\n";
	$body .= "Content-Transfer-Encoding: 8bit\n";
	$body .= "Content-Disposition: attachment\n\n";
	$body .= $attachment . "\n";
	$body .= "--" . $bound . "--\n\n";
	$mailer->AddAttachment();
};
require 'mailer/PHPMailerAutoload.php';
$mailer = new PHPMailer;
$mailer->setFrom( $_POST[ 'email1' ], $_POST[ 'name' ] );
$mailer->addAddress( 'name1@email.com' );
$mailer->AddCC( 'name1@email.com' );
$mailer->Subject = 'User ' . $_POST[ 'name' ] . ' submit';
$mailer->isHTML( true );
$mailer->Body = $_POST[ 'name' ] . '<br/>' . $_POST[ 'message' ];
$mailer->send();
?>

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Я изменил код

< php
if ($_POST[ 'message' ] == '' ) {
	$nosketch = '<p>The user has not provided sketch.</p>';
} else {
	$string = $_POST['message'];
	$filename = "mol_" . time() . ".txt";
	$encoding = "7bit";
	$type  = "text/plain";
	$disposition = "attachment";
};
require 'mailer/PHPMailer.php';
$mailer = new PHPMailer;
$mailer->setFrom( $_POST[ 'email1' ], $_POST[ 'name' ] );
$mailer->addAddress( 'name1@email.com' );
$mailer->AddCC( 'name1@email.com' );
$mailer->Subject = 'User ' . $_POST[ 'name' ] . ' submit';
$mailer->isHTML( true );
$mailer->Body = $_POST[ 'name' ] . '<br/>' . $_POST[ 'message' ];
$mailer->addStringAttachment($string,$filename,$encoding,$type,$disposition);
$mailer->send();
?>

Но когда я пытаюсь отправить сообщение, сценарий выпадает на require 'mailer/PHPMailer.php';. Если я использую старый файл, сообщение отправляется. И у меня также есть проблема с 'img1'. Если текст отображается на веб-странице, то он в строке. Но когда текст вставляется в файл, он имеет два или более абзаца.

0 голосов
/ 03 сентября 2018

Вы можете использовать этот метод phpMailer addStringAttachment($string,$filename,$encoding,$type)

, например

$mail = new PHPMailer();
$mail->addStringAttachment($string,$filename,$encoding,$type);

Вот документация по этой функции .

надеюсь, что это работает

...