Я пытаюсь заставить Amazon SES работать, чтобы отправлять электронную почту, используя их примеры сценариев. Я не Perl парень на самом деле, но примеры на Perl, пусть будет так.
Примеры SES предоставляют скрипт для проверки вашего адреса от: (сделано) и проверки статистики (работает нормально), а также для отправки электронного письма (тоже работает, пока ...)
Я могу отправлять электронную почту в режиме простого параметра или в режиме необработанного параметра, если я использую STDIN и набираю части тела сообщения - либо целое сообщение в случае необработанного, либо только фактическое тело в случае простого. Это отлично работает. Однако, если я использую <для использования ввода из файла вместо этого, он не будет читать его. Он говорит «Отсутствует от», а затем, если я укажу это в командной строке, я получу «Отсутствует», и если я укажу это также в командной строке, я получу «Отсутствующий субъект» - и если вы попытаетесь указать тему в командной строке вместе с параметром -r он правильно отвечает, что вам не разрешено указывать тему при использовании необработанного режима. (по-видимому, вы <i>можете указать только from и to.)
У меня ActiveState Perl 5.12.3 Build 1204. Я установил все предварительные требования, по-видимому, так как я могу отправлять электронную почту очень хорошо, пока не попытаюсь заставить ее читать данные из файла как STDIN. Я использую Win Srv 03 R2 SP2. Я уже получил доступ к продукту от Amazon, и я не нахожусь вблизи моего лимита в 1000 писем в день.
Это пример команды, которую я пытаюсь запустить:
C:\amazon-testing-folder\perl>ses-send-email.pl -k aws-credentials -r < raw-email.txt
Missing Required header 'From'.
Использование относительного или абсолютного пути / спецификации файла ничего не меняет. Правильное присвоение неверного имени файла приводит к тому, что ОС выдает сообщение «Система не может найти указанный файл».
Насколько я могу судить, эта строка, кажется, ничего не читает, если я указываю имя файла.
$opts{'m'} = join '', readline *STDIN;
Это в ses-send-email.pl, несколько строк сверху в sub read_message {}.
Я попытался вставить несколько строк отладки после этого, чтобы увидеть, читает ли он что-нибудь, и они, кажется, подтверждают, что это не так. Мой необработанный файл отформатирован правильно, и да, у него есть строка From: и To:! И тема: линия! Я также удалил все строки заголовков, которых не было в списке поддерживаемых заголовков Amazon (например, Content-Class:).
Кто-нибудь заставил это работать? Заранее спасибо ... Не уверен, что попробовать дальше.
Пример файла raw-email.txt: (Я также пытался изменить порядок строк заголовка, но я действительно не думаю, что он читает в файле.)
To: <anyone@anywhere.com>
From: <a-verified-address@domain.com>
Message-ID: <697745840.1.1292371199964@0023df9374dc>
Subject: February 21 Test
Date: Mon, 21 Feb 2011 05:00:00 -0600
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=abcdefg"
This is a multi-part message in MIME format.
If you are seeing this message, your mail program
doesn't understand rich-formatted email.
----=abcdefg
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Text Message Goes Here.
----=abcdefg
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
HTML<br>version<br>goes<br>here<br>
----=abcdefg--