#php #email #curl #smtp
#php #Адрес электронной почты #curl #smtp
Вопрос:
Мне удалось отправить письмо gmail с помощью smtp curl, но по некоторым причинам я не могу найти, куда мне следует добавить тему письма, и я также пытаюсь выяснить, как использовать форматирование.
Для темы я попытался добавить ее в fwrite, но безуспешно.
Для форматирования я безуспешно пытался использовать strong, h1, h2 .. внутри $message .
Если у вас есть какие-либо идеи, дайте мне знать.
Это мой код:
$subject = 'something'
$message = 'body';
$emailFile = fopen("php://temp", 'w ');
fwrite($emailFile, "$message");
rewind($emailFile);
$proxy = $data;
$fstat = fstat($emailFile);
$size = $fstat['size'];
$ch = curl_init('smtps://smtp.gmail.com:465');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($ch, CURLOPT_MAIL_FROM, "<" . 'test@gmail.com' . ">");
curl_setopt($ch, CURLOPT_MAIL_RCPT, array(
"<" . 'receiver@gmail.com' . ">"
));
curl_setopt($ch, CURLOPT_USERNAME, 'test@gmail.com');
curl_setopt($ch, CURLOPT_PASSWORD, 'password');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USE_SSL, CURLUSESSL_ALL);
curl_setopt($ch, CURLOPT_PUT, 1);
curl_setopt($ch, CURLOPT_INFILE, $emailFile);
curl_setopt($ch, CURLOPT_INFILESIZE, $size);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
$data = curl_exec($ch);
fclose($emailFile);
curl_close($ch);
Комментарии:
1. Идея: загрузить библиотеку, предназначенную для отправки почты. Не пытайтесь делать это вручную.
2. Я пробовал библиотеки, но они плохо работают с прокси, curl лучше всего работал с прокси для меня.
3. Тогда удачи с этим. RFC 5322 поможет вам начать ; тема — это просто заголовок, и если вы хотите использовать HTML, вам нужно создать MIME-сообщение, состоящее из нескольких частей, с соответствующей кодировкой и разделителями.