本文整理汇总了C++中MailSender类的典型用法代码示例。如果您正苦于以下问题:C++ MailSender类的具体用法?C++ MailSender怎么用?C++ MailSender使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MailSender类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: calibRequestFile
void ColorKeeperModel::deleteCalibRequestFile(string screenFullName,
const unsigned int &screenIndex) {
QFile calibRequestFile(
QString::fromStdString(
ColorKeeperModel::getCalibRequestFilePath(screenFullName)));
if (calibRequestFile.exists()) {
calibRequestFile.remove();
const ILocalHost &host = ColorKeeperModel::Instance().getDeviceInfo();
QString osName;
#ifdef __WIN32__
osName = "Windows";
#endif
#ifdef __linux__
osName = "Linux";
#endif
#ifdef __APPLE__
osName = "MacOSX";
#endif
QString hostname = QString(host.getHostName().c_str());
QString domain = QString(host.getDomainName().c_str());
bool isHighPriority = false;
map<unsigned int, HealerCalibModel>::iterator calibIt =
ColorKeeperModel::Instance()._calib.find(screenIndex);
if (calibIt != ColorKeeperModel::Instance()._calib.end()) {
isHighPriority = (*calibIt).second.isHighPriority();
}
MailSender* mailer = ColorKeeperModel::Instance().getMailer();
if (mailer == NULL)
return;
//CalibRequest
QString title = "CalibRequest For " + hostname + " on " + osName;
if (isHighPriority)
title = "URGENT " + title;
QString message =
"[CLOSED]\nMessage send by ColorKeeper after a calibration with ColorHealer.";
mailer->send(QString::fromLocal8Bit(title.toStdString().c_str()),
QString::fromLocal8Bit(message.toStdString().c_str()));
}
}
示例2: SendMailTo
/**
* Sends a mail.
*
* @param receiver The MailReceiver to which this mail is sent.
* @param sender The MailSender from which this mail is originated.
* @param checked The mask used to specify the mail.
* @param deliver_delay The delay after which the mail is delivered in seconds
*/
void MailDraft::SendMailTo(MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay)
{
Player* pReceiver = receiver.GetPlayer(); // can be NULL
uint32 pReceiverAccount = 0;
if (!pReceiver)
pReceiverAccount = sObjectMgr.GetPlayerAccountIdByGUID(receiver.GetPlayerGuid());
if (!pReceiver && !pReceiverAccount) // receiver not exist
{
deleteIncludedItems(true);
return;
}
bool has_items = !m_items.empty();
// generate mail template items for online player, for offline player items will generated at open
if (pReceiver)
{
if (prepareItems(pReceiver))
has_items = true;
}
uint32 mailId = sObjectMgr.GenerateMailID();
time_t deliver_time = time(NULL) + deliver_delay;
uint32 expire_delay;
// auction mail without any items and money (auction sale note) pending 1 hour
if (sender.GetMailMessageType() == MAIL_AUCTION && m_items.empty() && !m_money)
expire_delay = HOUR;
// default case: expire time if COD 3 days, if no COD 30 days
else
expire_delay = (m_COD > 0) ? 3 * DAY : 30 * DAY;
time_t expire_time = deliver_time + expire_delay;
// Add to DB
std::string safe_subject = GetSubject();
CharacterDatabase.escape_string(safe_subject);
std::string safe_body = GetBody();
CharacterDatabase.escape_string(safe_body);
CharacterDatabase.BeginTransaction();
CharacterDatabase.PExecute("INSERT INTO mail (id,messageType,stationery,mailTemplateId,sender,receiver,subject,body,has_items,expire_time,deliver_time,money,cod,checked) "
"VALUES ('%u', '%u', '%u', '%u', '%u', '%u', '%s', '%s', '%u', '" UI64FMTD "','" UI64FMTD "', '%u', '%u', '%u')",
mailId, sender.GetMailMessageType(), sender.GetStationery(), GetMailTemplateId(), sender.GetSenderId(), receiver.GetPlayerGuid().GetCounter(), safe_subject.c_str(), safe_body.c_str(), (has_items ? 1 : 0), (uint64)expire_time, (uint64)deliver_time, m_money, m_COD, checked);
for(MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
{
Item* item = mailItemIter->second;
CharacterDatabase.PExecute("INSERT INTO mail_items (mail_id,item_guid,item_template,receiver) VALUES ('%u', '%u', '%u','%u')",
mailId, item->GetGUIDLow(), item->GetEntry(), receiver.GetPlayerGuid().GetCounter());
}
CharacterDatabase.CommitTransaction();
// For online receiver update in game mail status and data
if (pReceiver)
{
pReceiver->AddNewMailDeliverTime(deliver_time);
Mail *m = new Mail;
m->messageID = mailId;
m->mailTemplateId = GetMailTemplateId();
m->subject = GetSubject();
m->body = GetBody();
m->money = GetMoney();
m->COD = GetCOD();
for(MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
{
Item* item = mailItemIter->second;
m->AddItem(item->GetGUIDLow(), item->GetEntry());
}
m->messageType = sender.GetMailMessageType();
m->stationery = sender.GetStationery();
m->sender = sender.GetSenderId();
m->receiverGuid = receiver.GetPlayerGuid();
m->expire_time = expire_time;
m->deliver_time = deliver_time;
m->checked = checked;
m->state = MAIL_STATE_UNCHANGED;
pReceiver->AddMail(m); // to insert new mail to beginning of maillist
if (!m_items.empty())
{
for(MailItemMap::iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
pReceiver->AddMItem(mailItemIter->second);
//.........这里部分代码省略.........
示例3: SendMailTo
void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay)
{
Player* pReceiver = receiver.GetPlayer(); // can be NULL
Player* pSender = sObjectMgr->GetPlayerByLowGUID(sender.GetSenderId());
if (pReceiver)
prepareItems(pReceiver, trans); // generate mail template items
uint32 mailId = sObjectMgr->GenerateMailID();
time_t deliver_time = time(NULL) + deliver_delay;
//expire time if COD 3 days, if no COD 30 days, if auction sale pending 1 hour
uint32 expire_delay;
// auction mail without any items and money
if (sender.GetMailMessageType() == MAIL_AUCTION && m_items.empty() && !m_money)
expire_delay = sWorld->getIntConfig(CONFIG_MAIL_DELIVERY_DELAY);
// mail from battlemaster (rewardmarks) should last only one day
else if (sender.GetMailMessageType() == MAIL_CREATURE && sBattlegroundMgr->GetBattleMasterBG(sender.GetSenderId()) != BATTLEGROUND_TYPE_NONE)
expire_delay = DAY;
// default case: expire time if COD 3 days, if no COD 30 days (or 90 days if sender is a game master)
else
{
if (m_COD)
expire_delay = 3 * DAY;
else
expire_delay = pSender && pSender->IsGameMaster() ? 90 * DAY : 30 * DAY;
}
time_t expire_time = deliver_time + expire_delay;
// Add to DB
uint8 index = 0;
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL);
stmt->setUInt32( index, mailId);
stmt->setUInt8 (++index, uint8(sender.GetMailMessageType()));
stmt->setInt8 (++index, int8(sender.GetStationery()));
stmt->setUInt16(++index, GetMailTemplateId());
stmt->setUInt32(++index, sender.GetSenderId());
stmt->setUInt32(++index, receiver.GetPlayerGUIDLow());
stmt->setString(++index, GetSubject());
stmt->setString(++index, GetBody());
stmt->setBool (++index, !m_items.empty());
stmt->setUInt64(++index, uint64(expire_time));
stmt->setUInt64(++index, uint64(deliver_time));
stmt->setUInt32(++index, m_money);
stmt->setUInt32(++index, m_COD);
stmt->setUInt8 (++index, uint8(checked));
trans->Append(stmt);
for (MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
{
Item* pItem = mailItemIter->second;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL_ITEM);
stmt->setUInt32(0, mailId);
stmt->setUInt32(1, pItem->GetGUID().GetCounter());
stmt->setUInt32(2, receiver.GetPlayerGUIDLow());
trans->Append(stmt);
}
// For online receiver update in game mail status and data
if (pReceiver)
{
pReceiver->AddNewMailDeliverTime(deliver_time);
if (pReceiver->IsMailsLoaded())
{
Mail* m = new Mail;
m->messageID = mailId;
m->mailTemplateId = GetMailTemplateId();
m->subject = GetSubject();
m->body = GetBody();
m->money = GetMoney();
m->COD = GetCOD();
for (MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
{
Item* item = mailItemIter->second;
m->AddItem(item->GetGUID().GetCounter(), item->GetEntry());
}
m->messageType = sender.GetMailMessageType();
m->stationery = sender.GetStationery();
m->sender = sender.GetSenderId();
m->receiver = receiver.GetPlayerGUIDLow();
m->expire_time = expire_time;
m->deliver_time = deliver_time;
m->checked = checked;
m->state = MAIL_STATE_UNCHANGED;
pReceiver->AddMail(m); // to insert new mail to beginning of maillist
if (!m_items.empty())
{
for (MailItemMap::iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
pReceiver->AddMItem(mailItemIter->second);
}
}
else if (!m_items.empty())
//.........这里部分代码省略.........
示例4: SendMailTo
void MailDraft::SendMailTo(MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay)
{
Player* pReceiver = receiver.GetPlayer(); // can be NULL
if (pReceiver)
prepareItems(pReceiver); // generate mail template items
uint32 mailId = objmgr.GenerateMailID();
time_t deliver_time = time(NULL) + deliver_delay;
uint32 expire_delay;
// auction mail without any items and money (auction sale note) pending 1 hour
if (sender.GetMailMessageType() == MAIL_AUCTION && m_items.empty() && !m_money)
expire_delay = HOUR;
// mail from battlemaster (rewardmarks) should last only one day
else if (sender.GetMailMessageType() == MAIL_CREATURE && sBattleGroundMgr.GetBattleMasterBG(sender.GetSenderId()) != BATTLEGROUND_TYPE_NONE)
expire_delay = DAY;
// default case: expire time if COD 3 days, if no COD 30 days
else
expire_delay = (m_COD > 0) ? 3 * DAY : 30 * DAY;
time_t expire_time = deliver_time + expire_delay;
// Add to DB
std::string safe_subject = GetSubject();
CharacterDatabase.BeginTransaction();
CharacterDatabase.escape_string(safe_subject);
CharacterDatabase.PExecute("INSERT INTO mail (id,messageType,stationery,mailTemplateId,sender,receiver,subject,itemTextId,has_items,expire_time,deliver_time,money,cod,checked) "
"VALUES ('%u', '%u', '%u', '%u', '%u', '%u', '%s', '%u', '%u', '" UI64FMTD "','" UI64FMTD "', '%u', '%u', '%d')",
mailId, sender.GetMailMessageType(), sender.GetStationery(), GetMailTemplateId(), sender.GetSenderId(), receiver.GetPlayerGUIDLow(), safe_subject.c_str(), GetBodyId(), (m_items.empty() ? 0 : 1), (uint64)expire_time, (uint64)deliver_time, m_money, m_COD, checked);
for(MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
{
Item* item = mailItemIter->second;
CharacterDatabase.PExecute("INSERT INTO mail_items (mail_id,item_guid,item_template,receiver) VALUES ('%u', '%u', '%u','%u')", mailId, item->GetGUIDLow(), item->GetEntry(), receiver.GetPlayerGUIDLow());
}
CharacterDatabase.CommitTransaction();
// For online receiver update in game mail status and data
if (pReceiver)
{
pReceiver->AddNewMailDeliverTime(deliver_time);
if (pReceiver->IsMailsLoaded())
{
Mail *m = new Mail;
m->messageID = mailId;
m->mailTemplateId = GetMailTemplateId();
m->subject = GetSubject();
m->itemTextId = GetBodyId();
m->money = GetMoney();
m->COD = GetCOD();
for(MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
{
Item* item = mailItemIter->second;
m->AddItem(item->GetGUIDLow(), item->GetEntry());
}
m->messageType = sender.GetMailMessageType();
m->stationery = sender.GetStationery();
m->sender = sender.GetSenderId();
m->receiver = receiver.GetPlayerGUIDLow();
m->expire_time = expire_time;
m->deliver_time = deliver_time;
m->checked = checked;
m->state = MAIL_STATE_UNCHANGED;
pReceiver->AddMail(m); // to insert new mail to beginning of maillist
if (!m_items.empty())
{
for(MailItemMap::iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
pReceiver->AddMItem(mailItemIter->second);
}
}
else if (!m_items.empty())
deleteIncludedItems();
}
else if (!m_items.empty())
deleteIncludedItems();
}
示例5: sendAMailCalibrationRequest
void ColorKeeperModel::sendAMailCalibrationRequest() {
MailSender* mailer = ColorKeeperModel::Instance().getMailer();
if (mailer == NULL) {
ostringstream os;
os << "\nCoudn't find mailer configuration.\n" << endl;
ColorKeeperModel::logMessage(os.str());
return;
}
const ILocalHost &host = getDeviceInfo();
const vector<unsigned int> & screenOrder = getScreenResOrder();
QStringList screensToCalibrate;
QStringList screensToCalibrateFullNames;
bool isHighPriority = false;
for (unsigned int i = 0; i < screenOrder.size(); i++) {
const ZooperDisplayDevice & dispDev = host.getCalibrableDisplayDevice(
screenOrder[i]);
string fullname = dispDev.getFullName(false);
if (isCalibResquestAsked(fullname)
|| isScreenModelInvalidate(dispDev.getManufacturerName(),
dispDev.getModelName()) || isMachineInvalidate())
continue;
int isHasBeen = isScreenCorrectionHasBeen(dispDev.getOSIndex());
bool isNotCorrected = !isScreenCorrected(dispDev.getOSIndex());
if (isHasBeen > 0) {
QString message = "";
message += "Average Priority : "
+ QString(dispDev.getFullName().c_str()) + " has a "
+ QString::number(isHasBeen)
+ " days obsolete profile and need to be re-calibrate.";
// QString message = "";
// message
// += "" + QString(
// dispDev.getFullName().c_str())
// + " has no calibration profile and need to be calibrate very quickly.";
screensToCalibrate << message;
screensToCalibrateFullNames << QString::fromStdString(fullname);
} else if (isNotCorrected) {
QString message = "";
message +=
"High Priority : " + QString(dispDev.getFullName().c_str())
+ " has no calibration profile and need to be calibrate very quickly.";
screensToCalibrate << message;
screensToCalibrateFullNames << QString::fromStdString(fullname);
isHighPriority = true;
}
}
int nbScreensToCalibrate = screensToCalibrate.size();
if (nbScreensToCalibrate > 0) {
QString osName;
#ifdef __WIN32__
osName = "Windows";
#endif
#ifdef __linux__
osName = "Linux";
#endif
#ifdef __APPLE__
osName = "MacOSX";
#endif
QString hostname = QString(host.getHostName().c_str());
QString domain = QString(host.getDomainName().c_str());
QString message =
"Dear calibrators,\n\nColorKeeper has detected a lack of calibration for machine "
+ hostname + " (domain : " + domain + ", user : "
+ QString(host.getUserName().c_str()) + " ) on "
+ osName + " : \n";
//CalibRequest
QString title = "CalibRequest For " + hostname + " on " + osName;
if (isHighPriority)
title = "URGENT " + title;
for (int i = 0; i < nbScreensToCalibrate; i++) {
message += "- " + screensToCalibrate.at(i) + "\n";
ColorKeeperModel::createCalibRequestAskedFile(
screensToCalibrateFullNames.at(i).toStdString(),
message.toStdString());
}
message += "\nThanks !\n\n";
#ifdef __linux__
message += "Reminder : on Linux, only one screen can be calibrated, ColorKeeper choose the primary screen in Nvidia-settings.\nSo when you're calibrating a dual screen linux station, check first that the primary screen if the best of the two (if not change the primary screen setting in Nivdia-settings).\n\n";
#endif
mailer->send(QString::fromLocal8Bit(title.toStdString().c_str()),
QString::fromLocal8Bit(message.toStdString().c_str()));
ColorKeeperModel::logMessage("\nA request calib mail was sent.\n");
}
}