Вложение электронной почты не отправляется вместе с электронной почтой

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

Я работаю в системе SCADA, поэтому System.Web.Mail. команды - это все, что у меня есть для использования.

' отмечены строки, которые я уже пробовал.

Вот что у меня почта отправляет нормально но без вложений;

Dim Day as System.dateTime;
Dim sDay as String;
'Dim attachment as System.Web.Mail.MailAttachment;
'Dim attachment as string;

Day = new system.dateTime();
Day = now();
Day = system.dateTime.Parse(Day).AddDays(-1);
sDay = Day.day;

System.Web.Mail.SmtpMail.SmtpServer = "smtp.mdu.com";
System.Web.Mail.MailAttachment("G:\Test\" + me.IGCFilename + sday + ".txt");

'System.Web.Mail.MailAttachment attachment = new System.Web.Mail.MailAttachment("G:\Test\" + 
 me.IGCFilename + sday + ".txt");

System.Web.Mail.SmtpMail.Send
(
{from: } "[email protected];",
{to: } me.EmailTo,
{subject: } "Daily Gate Volumes sent to Williams",
{body: } "Gas Day Volumes"
);

me.EmailFileNow = false;

person BrianS    schedule 18.09.2019    source источник
comment
Куда вы добавляете вложение к электронному письму?   -  person devlin carnate    schedule 18.09.2019
comment
Возможный дубликат Добавление вложения в электронную почту с помощью C#   -  person devlin carnate    schedule 18.09.2019
comment
Я считаю, что второй system.web должен добавлять вложение.   -  person BrianS    schedule 18.09.2019
comment
Я попробовал этот пост, но он использует system.net.mail, и моя система SCADA этого не понимает,   -  person BrianS    schedule 18.09.2019
comment
Почему этот вопрос помечен C#?   -  person René    schedule 18.09.2019
comment
Похоже, у вас синтаксис Visual Basic, а не C#. Также вы должны быть не в почтовой библиотеке, а в сообщении. У вас должен быть MailMessage, который вы используете для определения отправителя, кому, темы, основного текста и дополнительного контента.   -  person Greg    schedule 18.09.2019
comment
Что касается языка программирования, мне всегда говорили, что это гибрид C# и VB, если это не так, я прошу прощения. Большая часть кода, который мы используем, предназначена для систем управления, поэтому в основном операторы if then else.   -  person BrianS    schedule 19.09.2019
comment
@Greg Я прошу прощения, я не кодер, поэтому я не уверен, что вы имеете в виду под почтовой библиотекой и сообщением.   -  person BrianS    schedule 19.09.2019
comment
Это означает, что вы должны создавать сообщение, используя почтовую библиотеку. Если вы посмотрите на пример в вопросе по ссылке, которую я разместил выше, вы увидите, как должен выглядеть ваш код (если вы пишете на С#, а если нет, вы можете легко использовать онлайн-переводчик, чтобы преобразовать его в ВБ). Также возможно, что в вашей системе реализованы сценарии VB и C#, но они не будут находиться в одном и том же блоке кода.   -  person devlin carnate    schedule 19.09.2019
comment
Почему этот вопрос помечен как VBScript?   -  person user692942    schedule 19.09.2019
comment
@devlin carnate Спасибо за ответ, но опять же, моя система — это тупая система scada, которая не понимает такие команды, как var, const, System.Net.Mail, которые находятся в связанном посте. Я попытался изменить связанный пост, чтобы он работал. Я пытался запустить его только с помощью инструментов конвертера, но в итоге получил несколько ошибок. Код, который я предоставил, — это то, что я смог выяснить методом проб и ошибок, и он работает при отправке электронного письма, но не вложения. Я не знаю, может быть, он не может отправлять вложения, но одна из доступных функций, по его словам, это System.Web.Mail.MailAttachment.   -  person BrianS    schedule 19.09.2019
comment
Если вы делаете это в PowerShell, найдите, как делать почту в PowerShell с помощью C#.   -  person Greg    schedule 19.09.2019
comment
У меня есть подозрение, что это действительно то, что вам нужно, PowerShell. stackoverflow.com/questions/3997303/   -  person Greg    schedule 19.09.2019


Ответы (1)


Похоже, код использует метод Send(String, String, String, String), который отправляет сообщение from, to, subject, body.

Чтобы добавить полное письмо с вложениями и всем, попробуйте:

Dim Day as System.dateTime;
Dim sDay as String;

Day = new system.dateTime();
Day = now();
Day = system.dateTime.Parse(Day).AddDays(-1);
sDay = Day.day;

MailAttachment att = System.Web.Mail.MailAttachment("G:\Test\" + me.IGCFilename + sday + ".txt");

emailMessage = new MailMessage();
emailMessage.From = "[email protected];";
emailMessage.To = "me.EmailTo";
emailMessage.Subject = "Daily Gate Volumes sent to Williams";
emailMessage.Body = "Gas Day Volumes";
emailMessage.Attachments.Add(att);

System.Web.Mail.SmtpMail.SmtpServer = "smtp.mdu.com";
System.Web.Mail.SmtpMail.Send(emailMessage);

me.EmailFileNow = false;

Без системы vb SCADA я не могу ее протестировать, но приведенный выше код является кодом .net SmtpMail.

person ScottJamesSDF    schedule 19.09.2019
comment
Спасибо за это. Я пытаюсь заставить его работать, но в настоящее время во время проверки выдается ошибка, в которой говорится, что первое внимание не ожидается. - person BrianS; 19.09.2019
comment
Можете ли вы опубликовать полную ошибку? Легче понять, что происходит с фактической информацией об ошибке. - person ScottJamesSDF; 20.09.2019
comment
Без каких-либо дальнейших отзывов от вас, @BrianS, мы не сможем помочь вам решить эту проблему. Если мой ответ помог вам решить вашу проблему, отметьте его как принятый ответ. - person ScottJamesSDF; 23.09.2019
comment
Это все еще не работает. Что касается ошибок, то они просто не ожидались. в приведенном вами коде. Ошибки недостаточно надежны, чтобы решить проблему, поэтому я пока сдался, поскольку мы находимся в середине обновления SCADA, и я сосредоточился на этом. Это будет необходимо в новой системе, но пока это низкий приоритет. Я пробовал Dim att как строку в качестве системной переменной в качестве переменной вложения, но безуспешно. - person BrianS; 24.09.2019