Регистрация  |  Вход

Ошибка при отправления письма с помощью EmailTemplate

Строка с ошибкой - выделена жирным

Contact c = [select id, Email from Contact where email <> null limit 1];
List<Messaging.SingleEmailMessage> lstMsgs = new List<Messaging.SingleEmailMessage>();

Messaging.SingleEmailMessage msg = new Messaging.SingleEmailMessage();
msg.setTemplateId( [select id, name from EmailTemplate where Name = :'Notification_The_deal_in_process'].id );
msg.setWhatId( [select id from Account limit 1].id );
msg.setTargetObjectId(c.id);
msg.setToAddresses(new List<String>{email});

lstMsgs.add(msg);

// Send the emails in a transaction, then roll it back
Savepoint sp = Database.setSavepoint();
Messaging.sendEmail(lstMsgs);
Database.rollback(sp);

// For each SingleEmailMessage that was just populated by the sendEmail() method, copy its
// contents to a new SingleEmailMessage. Then send those new messages.
List<Messaging.SingleEmailMessage> lstMsgsToSend = new List<Messaging.SingleEmailMessage>();
for (Messaging.SingleEmailMessage message : lstMsgs) {
Messaging.SingleEmailMessage emailToSend = new Messaging.SingleEmailMessage();
emailToSend.setToAddresses(message.getToAddresses());
emailToSend.setPlainTextBody(message.getPlainTextBody());
emailToSend.setHTMLBody(message.getHTMLBody());
emailToSend.setSubject(message.getSubject());
lstMsgsToSend.add(emailToSend);
}
Messaging.sendEmail(lstMsgsToSend);
}

Строка с ошибкой - выделена жирным 

Contact c = [select id, Email from Contact where email <> null limit 1];
 		List<Messaging.SingleEmailMessage> lstMsgs = new List<Messaging.SingleEmailMessage>();

 		Messaging.SingleEmailMessage msg = new Messaging.SingleEmailMessage();
 		[b]msg.setTemplateId( [select id, name from EmailTemplate where Name = :'Notification_The_deal_in_process'].id );[/b]
 		msg.setWhatId( [select id from Account limit 1].id );
 		msg.setTargetObjectId(c.id);
 		msg.setToAddresses(new List<String>{email});

 		lstMsgs.add(msg);

 		// Send the emails in a transaction, then roll it back
 		Savepoint sp = Database.setSavepoint();
 		Messaging.sendEmail(lstMsgs);
        Database.rollback(sp);

 		// For each SingleEmailMessage that was just populated by the sendEmail() method, copy its
 		// contents to a new SingleEmailMessage. Then send those new messages.
 		List<Messaging.SingleEmailMessage> lstMsgsToSend = new List<Messaging.SingleEmailMessage>();
 		for (Messaging.SingleEmailMessage message : lstMsgs) {
 		Messaging.SingleEmailMessage emailToSend = new Messaging.SingleEmailMessage();
 		emailToSend.setToAddresses(message.getToAddresses());
 		emailToSend.setPlainTextBody(message.getPlainTextBody());
 		emailToSend.setHTMLBody(message.getHTMLBody());
 		emailToSend.setSubject(message.getSubject());
 		lstMsgsToSend.add(emailToSend);
 		}
 		Messaging.sendEmail(lstMsgsToSend);
        }
[URL=http://piccy.info/view3/13907820/a984d07494cdcca217deb2e17a693a43/1200/][IMG]http://i.piccy.info/i9/21fe7fdae2e0449392173fab69331945/1595428595/6756/1388971/848451_800.jpg[/IMG][/URL][URL=http://i.piccy.info/a3c/2020-07-22-14-43/i9-13907820/800x21-r][IMG]http://i.piccy.info/a3/2020-07-22-14-43/i9-13907820/800x21-r/i.gif[/IMG][/URL]

[URL=http://piccy.info/view3/13907821/1ee906cbe1846ceecb3af0203f53c642/1200/][IMG]http://i.piccy.info/i9/f26e90950f34788f12524768c4649a1f/1595428668/22863/1388971/963192_800.jpg[/IMG][/URL][URL=http://i.piccy.info/a3c/2020-07-22-14-42/i9-13907821/800x224-r][IMG]http://i.piccy.info/a3/2020-07-22-14-42/i9-13907821/800x224-r/i.gif[/IMG][/URL]

[URL=http://piccy.info/view3/13907825/526ccce4dce74485f00c77dbeb2ee7e4/orig/][IMG]http://i.piccy.info/i9/f13a4080fd2b09ac7ed3771d8c873fa1/1595428733/22758/1388971/3_800.jpg[/IMG][/URL][URL=http://i.piccy.info/a3c/2020-07-22-14-43/i9-13907825/800x210-r][IMG]http://i.piccy.info/a3/2020-07-22-14-43/i9-13907825/800x210-r/i.gif[/IMG][/URL]

[0].id так как select возвращает лист

[0].id так как select возвращает лист

HeadWillCurl
msg.setTemplateId( [select id, name from EmailTemplate where Name = :'Notification_The_deal_in_process'].id );

меня всегда такие сокращения удивляют.

спокойно выквери в лист,
проверь что там есть хотя бы одна запись (может ни одной нет с таким именем, и что коду делать теперь?),
возьми ее id и выведи в дебаг.
И после этого со спокойной душой двигайся дальше по логике

[quote="HeadWillCurl"]msg.setTemplateId( [b][select id, name from EmailTemplate where Name = :'Notification_The_deal_in_process'][/b].id );[/quote]

меня всегда такие сокращения удивляют.

спокойно выквери в лист, 
проверь что там есть хотя бы одна запись (может ни одной нет с таким именем, и что коду делать теперь?), 
возьми ее id и выведи в дебаг. 
И после этого со спокойной душой двигайся дальше по логике

Den Brown
меня всегда такие сокращения удивляют.

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

[quote="Den Brown"]меня всегда такие сокращения удивляют.[/quote]

Обычно это либо лень, либо отсутствие понимания, когда запоминают примеры кода с индийских блогов и прочих стэковерфлоу :p 

двоеточие из запроса убери

двоеточие из запроса убери