Получать электронные письма сотрудников SugarCRM
Я пишу некоторый код для sugarCRM, и я хотел бы уведомить сотрудников по электронной почте. Я использую активную модель записи, чтобы получить сотрудников, но их электронные письма нигде не найти.
$employees = BeanFactory::getBean('Employees')->get_full_list();
Как получить письма активных сотрудников через этот интерфейс? Мне нужно вынуть их из записей и добавить в электронное письмо, которое я отправляю.
3 ответа
Чтобы сохранить адрес электронной почты пользователя, используйте это:
$sea = new SugarEmailAddress;
$sea->addAddress($bean->email1, true);
$sea->save($newUser->id, "Users");
Чтобы получить основной адрес электронной почты, используйте это:
$primary_email=$user->emailAddress->getPrimaryAddress($user);
Надеюсь, что это поможет вам...:)
Проверьте это больше: SugarCRM Developer
Я также столкнулся с этой ситуацией, но я нашел решение ниже. Надеюсь, это работает для вас. Ура!!
<?php
$userId=array('2132131312323232','323232323232323'); //array of users id's
foreach($userId as $key => $val) {
$email_query = "select E.email_address from email_addr_bean_rel EB inner join email_addresses E on EB.email_address_id = E.id WHERE EB.bean_id='".$val."' and E.deleted = 0";
// Your implementation
}
?>
Ссылаясь на sAcH и эту документацию схемы, я написал запрос ниже. Вероятно, его можно много почистить, но он работает, и это то, что меня волнует прямо сейчас.
Он возвращает основной адрес электронной почты всех активных, не удаленных сотрудников, эффективно создавая список адресов электронной почты для ваших активных пользователей:
select e.email_address
from email_addr_bean_rel eb
inner join email_addresses e
on eb.email_address_id = e.id
where eb.bean_id in
(select id
from users
where deleted = 0 and employee_status = 'Active')
and e.deleted = 0 and eb.primary_address = 1
and eb.deleted = 0 and eb.bean_module = 'Users'
Важно отметить, что есть два поля, в которых пользователь может быть активен: status и employee_status. Это проверяет последнее; просто обратите внимание, что есть два поля статуса, а не одно!