Как отправить электронное письмо, используя сценарий оболочки с типом содержимого, равным multipart / mixed - PullRequest
0 голосов
/ 06 января 2020

Я новичок в сценариях оболочки. Я хочу отправить электронное письмо с вложением. Я получаю содержимое почты, как показано ниже.

Содержимое почты

Content-Type: multipart/mixed; boundary="===============810XXX3964=="\nMIME-Version: 1.0\nMessage-Id: <15XXXX83629.6472.166383011XXXX.a7cwXXXXH02@migrated>\nX-Original-From: Administrator <admin@example.com>\nCC: \nTo: pqr@gtech.com\nFrom: Administrator <abc@gmail.com.com>\nX-Frappe-Site: http://server:9010\nDate: Mon, 06 Jan 2020 05:50:36 -0000\nReply-To: admin@example.com\nBcc: \nSubject: BIS: BMR/014 Test\n\n--===============8102977676867523964==\nContent-Type: multipart/alternative;\n boundary="===============1984896067029127512=="\nMIME-Version: 1.0\n\n--===============1984896067029127512==\nContent-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: quoted-printable\n\n  =\n\n\n  =\n\n  =\n\n\n> On 3rd January 2020, 4:33pm, admin@example.com wrote:\n\n>\n\n> 
-- Several texts in between hence not mentioned all the content
</table>\n\t\t\t</td>\n\t\t</tr>\n\t</table>\n</body>\n\n</html>\n\n--===============1XXX9127512==--\n\n--===============8102977676867523964==--\n"

Я пробовал нижеприведенный скрипт в python.

os.popen('echo "{0}" | mail -s "{1}" -a "From: {2}" {3}'.format(message, subject, frappe.session.user_email, recipients))

Это работает, когда мы отправляем текстовые сообщения. Но что делать в случае Multipart / Mixed content

Также пробовал mailx, но тоже не работает.

mailx -a "above mail content"

1 Ответ

0 голосов
/ 06 января 2020

Для отправки почты программа mail является «дружественной» оболочкой для программы более низкого уровня. Короче говоря, почта предполагает, что то, что вы даете, это текстовое сообщение и делает все возможное, чтобы закодировать его, чтобы получатель все равно видел его в том же формате текст , который он получает. В частности, предполагается, что добавление строк заголовка - это его работа, а не ваша ...

Здесь вы уже отформатировали почту, включая строки заголовка, поэтому вы не хотите, чтобы отправляющая программа касалась чего-либо. Таким образом, вы не хотите использовать почту, а программу более низкого уровня, которая обычно называется sendmail. Используйте man sendmail в вашей системе, чтобы узнать больше ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...