2016-04-20 4 views
0

Я пытаюсь отправить отформатированные HTML-письма с моего Linux CentOS-сервера (Amazon EC2) с использованием сценария. Я отправляю его на учетную запись gmail и на рабочую учетную запись электронной почты, и мы используем Outlook 2016.Отправка HTML-форматированных писем с использованием скрипта из CentOS, не работающего в MS Outlook

письмо отформатировано в gmail нормально, но в Outlook он также выдает полные теги html.

MyScript

#!/bin/bash 
CURRENT=$(df/| grep/| awk '{ print $5}' | sed 's/%//g') 
EMAILS="[email protected], [email protected]" 

echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" > /tmp/testemail.html 
echo "<html" >> /tmp/testemail.html 
echo "<head>" >> /tmp/testemail.html 
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">" >> /tmp/testemail.html 
echo "</head>" >> /tmp/testemail.html 
echo "<body style=\"background-color:#99ccff;\" \"width:600px;\">" >> /tmp/testemail.html 
echo "<table>" >> /tmp/testemail.html 
echo "<tr style=\"height:30px;\">" >> /tmp/testemail.html 
echo "<td><strong>Current Disk Size:</strong></td>" >> /tmp/testemail.html 
echo "<td>$CURRENT</td>" >> /tmp/testemail.html 
echo "</tr>" >> /tmp/testemail.html 
echo "</table>" >> /tmp/testemail.html 
echo "</body>" >> /tmp/testemail.html 
echo "</html>" >> /tmp/testemail.html 

(cat /tmp/testemail.html) | mail -s "$(echo -e "Test 7 MIME- HTML Formatted OUTPUT \nMIME-Version: 1.0 \nContent-Type: text/html")" $EMAILS EOF 

Вот содержание testemail.html файла после того, как я запустить скрипт.

testemail.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 
<body style="background-color:#99ccff;" "width:600px;"> 
<table> 
<tr style="height:30px;"> 
<td><strong>Current Disk Size:</strong></td> 
<td>85</td> 
</tr> 
</table> 
</body> 
</html> 

Gmail

enter image description here

Перспективы

enter image description here

Примечание:

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

У кого-нибудь была эта проблема раньше и/или есть решение, как это можно исправить.

G

ответ

1

ваш скрипт нарушает много почты RFC, поэтому ожидаемый результат тело вашего сообщения нарушается. нет времени, чтобы объяснить, просто попробуйте использовать собачонку, чтобы построить правильное тело messsage:

cat /tmp/testemail.html | mutt \ 
-e "set content_type=text/html" \ 
-e "set [email protected]" \ 
-e "set realname=daemon" \ 
-e "set send_charset=utf-8" \ 
-s "test subject" \ 
[email protected] \ 
[email protected] 

и не забудьте установить его перед использованием: yum install -y mutt.

+0

Я новичок в сценариях linux, поэтому, если вы говорите, что я нарушаю почтовую rfc, а затем не скажу, что не время объяснять, как я или другие читающие это предполагают, чтобы понять это правильно, если я не знаю, что правильно, и вы не знаете, У меня есть время рассказать или показать, что я ошибаюсь? – Gman

+0

Я пробовал это, и теперь он не отправляется на мою работу, а электронная почта отправляется только в gmail. – Gman

+0

unix way использует инструмент, который подходит вам, как мут. mail rfc много читает, я думаю, вы не все: rfc 1123, 1138, 1148, 1327, 1556, 2045, 2046, 2047, 2049, 2156, 2184, 2231, 2646, 3798, 4288, 4289, 4855, 5147, 5335. – raven428