Я посылаю электронные письма успешно с помощью после кода. Но теперь я хочу присоединить текстовый файл (пример: test.txt) с электронной почтой. Какая-либо Идея?
require_once "Mail.php";
$from = "Usman <from@example.com>";
$to = "Naveed <to@example.com>";
$subject = "subject";
$body = "";
$host = "smtp.gmail.com";
$username = "username";
$password = "password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory( 'smtp', array('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password ) );
$mail = $smtp->send( $to, $headers, $body );
if ( PEAR::isError($mail) ) {
echo( "<p>" . $mail->getMessage() . "</p>" );
} else {
echo( "<p>Message successfully sent!</p>" );
}
Нашел этот код как один из первых результатов поиска google://pear mail attachment
.
include('Mail.php');
include('Mail/mime.php');
$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = './files/example.zip';
$hdrs = array(
'From' => 'someone@domain.pl',
'To' => 'someone@domain.pl',
'Subject' => 'Test mime message'
);
$mime = new Mail_mime();
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file,'application/octet-stream');
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('mail', $params);
$mail->send('mail@domain.pl', $hdrs, $body);
Если вы дополнительно используете модуль PHP PEAR Mail_Mime, он обеспечивает соответствующую обработку и кодировку для включения вложений в письмо.
Похоже, вы используете пакет PEAR Mail.
Обратите внимание на объект Mail_Mine, который выполняет то, что вы пытаетесь сделать, и имеет простой способ добавления вложений (просто вызовите addAttachments).
Отправка электронной почты с помощью PHP всегда кажется немного сложной задачей. Если у вас есть возможность их использовать, я бы рекомендовал одну из этих двух почтовых библиотек для PHP: